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: 17/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-14-05 09:54 AM Link | Quote
study this tutorial I wrote demonstrating the arrangement of 16x16 tiles with the 8x8 tiles from decompressed GFX in banks 3B0000 through 3E0000

16x16 tiles are arranged in banks 3B0000 through 3E0000 although I don't know about 3E0000 because I haven't documented anything there yet

knowing this is vital to understanding the links between the crucial data, which goes in this order:
tilesets read compressed GFX pointers from area layout data, decompressed GFX are arranged in 16x16 tiles, and 16x16 tiles are mapped

here's an updated tilemap offset collection with the tileset offsets added; I was wrong about tilesets and their significance in tile mapping because that's where the whole tile-arranging thing takes place before it maps the tiles

thanks for the feedback I've gotten

this is about as much as I'm going to do...it's up to the programmer to try to comprehend it and do what they wish

remember, if there are any questions about these processes just ask
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-14-05 10:24 AM Link | Quote
OK, one thing is that SMRPG seems to use the same screen mode as SMW, since the other 8 palettes are going to be used for the sprite layer. This means that each Map16 tile is 128 bytes big, right? My only other question is this- I'm guessing that the tileset decides the MAP16 page(s) selected for use, so if we could decode that, what else is there to do before you could put together a program that could edit the levels themselves? Tilesets may actusally be referred to as "MAP16 Page" sets, If I understand you right.

EDIT: Hey, here's something for everyone involved in this project:

It's a bit big, but that's what you get for using paint. If you want it please DL it and host it on your own site, thx.


(edited by Darkflight on 07-14-05 02:39 AM)
Omega45889

Panser
Level: 30

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

Since: 03-22-04
From: Vancouver Canada

Since last post: 5 days
Last activity: 6 hours
Posted on 07-14-05 11:34 PM Link | Quote
Hmm, thats a good idea. I should make a logo for the project but, I dont want to start with all that visual stuff until i have something cool goin.


(edited by Omega45889 on 07-14-05 02:35 PM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-15-05 12:38 AM Link | Quote
I'm fairly good with fireworks MX 2005 and .ico files. If you wanted I could work on something. The pic i posted was a gift for everyone who has put time and effort into this endeavor.
Pikachu025

Shyguy
Level: 17

Posts: 84/96
EXP: 21989
For next: 2754

Since: 05-05-04

Since last post: 75 days
Last activity: 11 days
Posted on 07-15-05 01:03 AM Link | Quote
Originally posted by Darkflight

Please never use BMP again. Thanks. Here's a GIF-Version (which was smaller than PNG, strangely):
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-15-05 01:12 AM Link | Quote
actually the tileset format has already been decoded (I'm guessing you were speaking hypothetically)



this is the first part of the decompressed tileset for Mario's Pipehouse (and many others)
which is the whole block (1000h bytes) and this is just a selection of the first 80h bytes as seen in Hex Workshop

the selection is a single 16-tile row of 16x16 tiles...each 16x16 tile is 8 bytes (in the tileset data) so a single row of 16 16x16 tiles would be 128 bytes; however, the tops and bottoms of the tiles aren't in subsequent order...for instance



the selection on top is the top half of the first tile in the set
the selection on bottom is the bottom half of the first tile in the set

that's the way it looks in a tile editor...in a ZST the graphics are arranged so that they're easiliy recognizable, which is because the top/bottom halves of the tiles are directly below each other on separate rows; the halves are 40h bytes apart

tile rows are 128 (80h) bytes each so it works within a row

here's an example where HW displays 64 bytes each row so that the top/bottom halves are displayed right above/below each other



each box of 8 bytes is a 16x16 tile...every two bytes is an 8x8 tile;

try to look at it as GFX seen in a tile editor; the byte 00 1C (or 1C 00 in big endian) is a transparent 8x8 tile...here I'll show you:



consider this image directly correspondent to the last one according to the five 16x16 tiles selected...as you can see, the first two are blank because they both share the values 00 1C for every little 8x8 tile in the 16x16 tile arrangement
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-15-05 02:41 AM Link | Quote
OK, looking at that, does that mean that the tile one down from the first tile would be

00 1C 00 1C
00 04 00 38?

So, if only the tile number, and not the other data byte were used, I would venture a guess that a 3 tile by 3 tile portion of the MAP16 could be explained sort of like this:

1C 1C | 1C 1C | 0C 0C
1C 1C | 1C 1C | 19 19
______|______|______
| |
1C 1C | 1C 1C | 1C 18
04 38 | 38 38 | 19 19
______|______|_______
| |
24 38 | 38 38 | 3C 3C
38 38 | 38 38 | 3C 38

All-in-all, that setup reminds me of the MAP16 format used in SMW, except that that's only a part of it. Perhaps then a MAP16 editor based off of the one in LM could be used, assuming that I've figured out the graphics low byte?
giangurgolo

Level: 10

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

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-15-05 02:58 AM Link | Quote
remember that the low byte is the tile number...we're looking at little endian format so the grid you made should have the low byte if only the tile number is shown

1C is the high byte for the blank tiles

I didn't have an explanation as to how to read an 8x8 tile:

if a tile editor would be reading the 8x8 tile, in order to find what GFX section the tile is reading from follow these steps (this has a tile example):

step 1: start with tile
0CC6

step 2: subtract 0x40 from the high byte only if it is greater than/equal to 40h, to cancel the mirroring
0CC6 (no modifications this time)

step 3: divide high byte by four
03C6

remainder is 0, so it is from section 1 of GFX
quotient is 0x03 so it uses palette 3 (from 0-7)


(edited by giangurgolo on 07-14-05 06:03 PM)
Pikachu025

Shyguy
Level: 17

Posts: 85/96
EXP: 21989
For next: 2754

Since: 05-05-04

Since last post: 75 days
Last activity: 11 days
Posted on 07-15-05 03:04 AM Link | Quote
I've edited your picture to fit the others, Darkflight. Do you like it?

BTW, great stuff you are doing here!
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-15-05 04:24 AM Link | Quote
Nice pic, pikachu025.

Ah, so I've mixed up the bytes. That would make the low byte table the following, instead of what I put last time:


00 00 | 00 00 | C6 C7
00 00 | 00 00 | B8 B9
_________________
00 00 | 00 00 | 00 05
00 05 | 38 39 | 14 15
_________________
00 05 | 24 25 | 00 00
14 15 | 06 07 | 00 05



So, for the division, if used in a program you would want to use the modulus command together with the division command in a code block similar to this:


;high-byte, low_byte, palette, tile, and bank
;are variables. Tile is the low byte, with the
;bank added on.

palette = high_byte % 4 ; this will give use the palette number
bank = INT(high_byte / 4)
tile = low_byte * (bank * 200h))

;then all you would need to do is apply the
;correct colours to the tile with additional code.



Yea, that's in VB, but It shouldn't be too hard to convert, since most of the functions should be generic.
giangurgolo

Level: 10

Posts: 20/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:28 AM Link | Quote
sorry if this is off topic but is there anything that's capable of converting a long string of hex numbers to decimal form?
not individually, I mean like an entire document...say, a list of hex values like this:

000A
0014
000A
0010
001E
0050
001E
0020
002B
...and so on

any help would be greatly appreciated!
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-15-05 06:30 AM Link | Quote
well, in VB6 I'd use the command

randomvariable = &h(your value here)

which would take the hex value and convert it to base-10.
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 Link | Quote
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.
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-15-05 06:45 AM Link | Quote
well, my best idea would be to create a command-line prgram that could do it. If you have Qbasic, PM me and I will send you a program you could write in it to add up an infinite umber of hex numbers, if you want.
Omega45889

Panser
Level: 30

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

Since: 03-22-04
From: Vancouver Canada

Since last post: 5 days
Last activity: 6 hours
Posted on 07-15-05 01:50 PM Link | Quote
Im almost finished writing a command line program that will do the conversion for you, but i am tired, and its like 5am. Ill finish it up tomorrow afternoon if you still want it.
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: 5769/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-15-05 03:36 PM Link | Quote
Base conversion/addition, eh? - contains utilities for converting between any two bases, and for adding any amount of numbers, among a bunch of other cool things, all by command line.


(edited by HyperHacker on 07-15-05 06:37 AM)
Sukasa

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

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

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

Since last post: 6 days
Last activity: 1 day
Posted on 07-18-05 08:50 AM Link | Quote
Awsome- but I have a question. With layers one and two, do they both have one tilemap, or is there only one, and a config bit determines the layer it goes on?
BGNG

Snifit
Level: 22

Posts: 149/276
EXP: 56579
For next: 1771

Since: 06-03-05

Since last post: 8 days
Last activity: 3 hours
Posted on 07-18-05 11:49 PM Link | Quote
I've prepared a signature link icon for the Super Mario RPG thread in the same manner as the other ones used on this board. Use this one not for conformity or because I made it, but for the effect of uniformity:



To include this in your signature without the annoying border and with the tooltip text in it, use the following code:

<A HREF="http://board.acmlm.org/thread.php?id=11060"><IMG SRC="WhereverYouPutThis/SMRPGLE.gif" Border=0 Title="Super Mario RPG Hacking Underway"></A>
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 Link | Quote
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.
aioria1981

Ninji
Level: 20

Posts: 1/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 07-20-05 11:09 AM Link | Quote
Hi, I'm a newbie in this forum, but I've reading this forum for a long time before registering. Well, here are my questions
About these offsets...
0x394F3C death animation-pop
0x3950B3 death animation-fade out
...I don't know if in these offsets is where when u kill an enemy, it dies as a as an animation dropping 0, small coin or big coin. I ask because when i change the coins given by some enemy, (i.e: 0x39163E for goomba) it doesn't affect the way it dies (for example, if i put 8 coins, it has to be an animation for the big coin drop, since for what i've seen, monsters that drop 5 coins or more drop a large coin, and from 4 coins and lower are small coins, obviously 0 must not have any animation)
Well, if so, can anybody explain the format of the bytes in these offsets and the lenght of the stats in number of bytes fir each monster?
...and if not, what do they mean.

By the way, thanks for giangurgolo for all this doumentation and all of the guys contributing with ideas for hacking smrpg
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.022 seconds.