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
Acmlm's Board - I2 Archive - - Posts by giangurgolo
Pages: 1 2 3
User Post
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-15-05 06:42 AM, in Has anyone even considered creating an editor for Mario RPG? Link
I guess I meant to ask if there's any software out there that can do en masse base converting, since I don't have any knowledge of one existing.

I don't have VB6 on my machine, though, if I wanted to create one of my own, but thanks for the help.
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-19-05 03:12 AM, in Has anyone even considered creating an editor for Mario RPG? Link
this doesn't really have anything to do with level-editing, but I threw together a monster/battle script chart which includes every significant monster stat ripped directly from the ROM, their stat offsets and battle script offsets and a table of battle scripts for every monster

I guess it might make hacking a bit easier for anyone who wishes to edit those sorts of things.
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, in Has anyone even considered creating an editor for Mario RPG? Link
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.
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-04-05 04:05 AM, in Final Fantasy 5 Link
both SMRPG and FF3 use 'F0 xx xx xx' where the pairs of xx's are three random spells from which it chooses one to cast so I imagine FF5 would most likely follow the same routine

check out this place:
http://www.tenchinohoukai.greatnow.com/FF5.html

actually, looking through that, it looks like FD xx xx xx is the 1 of 3 random spells function


(edited by giangurgolo on 08-03-05 07:11 PM)
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-07-05 02:51 AM, in Super Mario RPG Debugging Menu Link
7E:091C-0924 menu option 1-9
00 Equip
01 Item
02 Special
03 Status
04 Special Item
05 Map
06 Star Pieces
07 Switch
08 Game

changing the addresses to any of these values changes the menu option...I didn't find anything leading to what you might refer to as a debug menu, but there were a couple of peculiar (although probably redundant) results

the text you found isn't in the same bank as the regular menu text, so it may very likely be accessible in some other manner

edit: not that this thread has much to do with this, but the reason the menu is inaccessible in Bowser's Castle (1st time) is because 00:3112 is set at #$EF (value loaded somewhere in bank 1F; each level has this option), which, then multiplied by 4 (#$BC, in which bit 6 is NOT set) and the X-button register (copied to from 00:4218, the hardware register, where the X-button bit is bit 6) is AND'ed by it, producing 00, thus telling the processor not to open the menu

if you want to access the menu in Bowser's Castle, just set 00:3112 to #$FF, which is the value used by the other normal areas


(edited by giangurgolo on 08-06-05 08:32 PM)
(edited by giangurgolo on 08-06-05 08:33 PM)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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.
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-21-05 01:42 AM, in Super Mario RPG Debugging Menu Link
I've found it.

enter this code:
C106AF80

Engage in battle and press start to access the menu. There is a music test, sound effect test, sprite viewer, and more. Press B to cancel.

$C1/069E AF 14 30 00 LDA $003014[$00:3014]   A:0002 X:0002 Y:2600 ;load button register (START = 1000)
$C1/06A2 AA TAX A:1000 X:0002 Y:2600
$C1/06A3 AF AC FF 00 LDA $00FFAC[$00:FFAC] A:1000 X:1000 Y:2600
$C1/06A7 85 80 STA $80 [$00:0480] A:1601 X:1000 Y:2600
$C1/06A9 AF AE FF 00 LDA $00FFAE[$00:FFAE] A:1601 X:1000 Y:2600
$C1/06AD 05 80 ORA $80 [$00:0480] A:110F X:1000 Y:2600

$C1/06AF F0 01 BEQ $01 [$06B2] A:170F X:1000 Y:2600 ;branch if equal to zero
$C1/06B1 60 RTS A:170F X:1000 Y:2600 ;end

$C1/06B2 8A TXA A:170F X:1000 Y:2600
$C1/06B3 89 00 10 BIT #$1000 A:1000 X:1000 Y:2600 ;check START button bit
$C1/06B6 D0 01 BNE $01 [$06B9] A:1000 X:1000 Y:2600 ;branch if set
$C1/06B9 A9 07 00 LDA #$0007 A:1000 X:1000 Y:2600
$C1/06BC 20 5E 03 JSR $035E [$C1:035E] A:0007 X:1000 Y:2600 ;load debug menu


Apparently it branches only if both of these particular accumulators (00:FFAC and 00:FFAE) are equal to zero, since one OR's the other. Since I don't know of any other way to access this menu other than to use this code, I suspect these addresses always have a bit set somewhere to prevent this branch.


(edited by giangurgolo on 08-20-05 04:42 PM)
(edited by giangurgolo on 08-20-05 04:46 PM)
(edited by giangurgolo on 08-20-05 05:19 PM)
(edited by giangurgolo on 08-20-05 07:07 PM)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-21-05 04:12 AM, in Super Mario RPG Debugging Menu Link
Originally posted by ShadowSonic

OMG you found!!! Ah man I could hug you!....but that would seem weird. Lol. Anyway, I gotta know, how did you manage to find it?


I made a trace log during a battle menu access (pressing Y, X, etc.) and searched the log file for any code which was within close proximity of the text. It was just a matter of playing around with the branch instructions to find it.

BTW, to access the other shorter menu with MAGIC, LASTER, BGLASTER use these two codes along with the other code I posted:
C106D2F3
C106D307


(edited by giangurgolo on 08-20-05 07:16 PM)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-21-05 06:29 AM, in Super Mario RPG Debugging Menu Link
my mistake, those aren't accumulators
they're indexed ROM addresses (in LoRom) at offsets $007FAC and $007FAE, and changing those four bytes to zeros breaks the debug menu lock
it's directly above the embedded cartridge information

also, pressing SELECT during a battle exits the battle


(edited by giangurgolo on 08-20-05 09:31 PM)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-21-05 08:36 AM, in Super Mario RPG Debugging Menu Link
Originally posted by HyperHacker
Which 4 bytes? I tried zeroing the ones at 7FAC-7FAF, as well as the addresses they pointed to (1601 and 110F, or 0116 and 0F11; tried both) with PAR codes and nothing happened.


are you implementing the codes in HiRom?
e.g. C07FAC00 not 007FAC00, since these are ROM addresses and not RAM

I noticed the only way to quick exit the battle with select is by zeroing out these offsets with a hex editor/PAR codes. The menu access PAR code (C106AF80) doesn't enable it.

The values in the 'Scene' option comply directly to the formation byte. I've already documented a complete list of monster formations, so no need to go through hours of work.


(edited by giangurgolo on 08-21-05 12:47 AM)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
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, in Has anyone even considered creating an editor for Mario RPG? Link
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)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-10-05 05:42 AM, in Has anyone even considered creating an editor for Mario RPG? Link
You can't buy them; the save state has them in the inventory. Just apply the patch, load the game, and load the ZST. Look in the equipment & item inventories for the items.
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-10-05 06:14 AM, in Has anyone even considered creating an editor for Mario RPG? Link
The ZST needs to be the same name as the rom and must be in the same directory as the rom or whatever save directory is specified by zsnes.cfg. Make sure you apply the patch before loading the state.

Okay, I've fixed the Kuribo's Shoe problem. I only had it load the accessory from character slot 1, which for many reasons is changed during battle, thus changing Mario's character slot to 3. Now it checks all three slots to see if it is equipped.

Redownload the patch for the fix.


(edited by giangurgolo on 09-09-05 09:33 PM)
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-10-05 09:21 PM, in Has anyone even considered creating an editor for Mario RPG? Link
The Rubber Shoes are supposed to load a 30 frame range between Super/Ultra Jumps thus making them remarkably easier to execute.

Make sure you're patching a headerless rom, although I doubt you weren't since I haven't heard of any that actually have headers, and you probably wouldn't have even been able play half the game without crashing/locking up.

Also make sure you're using the latest WIP of ZSNES.

I didn't have any problems you mentioned with Kero Sewers/Pipe Vault. Neither with Mario disappearing unless you're referring to the problem with ZSNES, when Mario enters an area that displays a sign at the top of the window he disappears until the sign goes away. What was equipped when you were having the errors, if you wouldn't mind telling?

Thanks for the feedback!


(edited by giangurgolo on 09-10-05 12:23 PM)
(edited by giangurgolo on 09-10-05 12:23 PM)
(edited by giangurgolo on 09-10-05 12:35 PM)
(edited by giangurgolo on 09-10-05 12:36 PM)
(edited by giangurgolo on 09-10-05 12:38 PM)
Pages: 1 2 3
Acmlm's Board - I2 Archive - - Posts by giangurgolo


ABII


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



Page rendered in 0.032 seconds.