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 - EggVine - Yoshi's Island Editor | |
Pages: 1 2 3 4 5 6Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 216/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-06-04 07:51 PM Link | Quote
Alright, I did agree that my editor was taking over that thread too much, and I didn't see a chance to switch threads nicely comming up, so we'll just continue from where we were.

For those of you just joining us, EggVine currently opens the file, loads levels, allows moving, deleting, and editing of objects, and saves. It has a simple built-in hex editor. The interface consists of colored blocks, which can be turned into outlined ones for if one's hiding behind another.

It does not have the following features (in order of importance):
-Screen exit support
-Handling of empty space immediately after a level
-Proper loading of levels (by indexes rather than offsets)
-Sprite support
-Graphics


The rest of this is a reply to a post by Knuck. Go read the original, if you haven't.
Originally posted by knuck
The squares aren't in the objects position already?
Go look at Lunar Magic, and go look at, say, a peice of generic ground. Notice how there are different tiles in different places in the object? That's what I mean by deciding where to put the graphics. Once again, that's an incredibly tedious process.

1- There is a list already.
I said it wouldn't be hard, no?
2- Not hard
I know that. I even said it isn't
3- Er...files?
Last time I messed with LC, it output as files. I haven't bothered to go look at all of its options again since I don't care about graphics at the moment.
Blatent ignoring of part 5 of the task
Part five is really the biggest barrier in doing this.
6- Not hard.
It seems some objects change based on tileset. If it's not hard, then why don't you do it?
Originally posted by Knuck
No it's not. It's already functional. (kinda)
No, it's not. Editing without sprites sucks. And, there's an absolutely major bug that can't be fixed without screen exit support.


--------------------------------------
EDIT:
Beta testers:
I've uploaded a new version. Same link still.

This version adds the internal support for screen exits (save and load), and, in addition, marks and uses the blank space left after a level is saved with a smaller size than before (no more loss of space).

This fixes a rather serious bug that should have existed (didn't test for it or hear about it, but it should've been there), causing major corruptions of screen exit data with almost every save. Since no one has complained, it's likely that YI is fairly tollerant of this. However, the new copy of EggVine will likely crash if it runs into a copy of the ROM like this. Thus, you should start with a fresh ROM.

Happy bug hunting. And thanks again guys. (And no, load by index doesn't work, I just did some work on the form)


For everyone else... well, you heard, it loads and saves screen exits and extra space. I'll have some more screenshots once I add the display and interface elements for screen exits.


(edited by Squash Monster on 08-06-04 10:52 AM)
(edited by Squash Monster on 08-06-04 10:54 AM)
(edited by Squash Monster on 08-06-04 06:44 PM)
macks

Level: 45

Posts: 350/900
EXP: 659955
For next: 209

Since: 03-15-04
From: Sweden

Since last post: 1 day
Last activity: 22 hours
Posted on 08-07-04 04:15 AM Link | Quote
*start using this thread everyone*
Chickenlump

Level: 41

Posts: 315/722
EXP: 474192
For next: 5953

Since: 03-15-04
From: Columbia City Indiana

Since last post: 3 hours
Last activity: 4 min.
Posted on 08-07-04 04:19 AM Link | Quote
Although displayed graphics are very nice, I don't beleive them to be necessary for a good editor. It's more like eye candy, extra sugar, niceness, fluff. If your editor edits properly, and does all it does well, then I will offer up no complaints. Yoshi's Island is one of those few GREAT games that everyone and their brother wants an editor for, at any cost. That, and with editors such as Lunar Magic making everyone biased against anything not up to it's standard, I can imagine how tough it must be. Just keep smacking people down, and do what you can. I'm impressed by the screenshots already, they look so 'tech-ish'.
windwaker

Ball and Chain Trooper
WHY ALL THE MAYONNAISE HATE
Level: 61

Posts: 68/1797
EXP: 1860597
For next: 15999

Since: 03-15-04

Since last post: 4 days
Last activity: 6 days
Posted on 08-07-04 05:39 AM Link | Quote
Originally posted by Chickenlump
Although displayed graphics are very nice, I don't beleive them to be necessary for a good editor. It's more like eye candy, extra sugar, niceness, fluff. If your editor edits properly, and does all it does well, then I will offer up no complaints. Yoshi's Island is one of those few GREAT games that everyone and their brother wants an editor for, at any cost. That, and with editors such as Lunar Magic making everyone biased against anything not up to it's standard, I can imagine how tough it must be. Just keep smacking people down, and do what you can. I'm impressed by the screenshots already, they look so 'tech-ish'.



SSSHHHHHH!!!!.... I want that feature .

Well, I would, if I was actually looking forward to a YI editor .
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 219/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-07-04 07:03 AM Link | Quote
Thanks Max .

Originally posted by Chickenlump
Although displayed graphics are very nice, I don't beleive them to be necessary for a good editor. It's more like eye candy, extra sugar, niceness, fluff. If your editor edits properly, and does all it does well, then I will offer up no complaints. Yoshi's Island is one of those few GREAT games that everyone and their brother wants an editor for, at any cost. That, and with editors such as Lunar Magic making everyone biased against anything not up to it's standard, I can imagine how tough it must be. Just keep smacking people down, and do what you can. I'm impressed by the screenshots already, they look so 'tech-ish'.

Thanks for the encouragement. I actually apreciate the standard set by Lunar Magic, as it gives something to strive for. And besides, after everything important is done, I've got a certain idea for a feature that probably will impress even FuSoYa .


(edited by Squash Monster on 08-06-04 10:03 PM)
cpubasic13
17 years old now. Time to buy some M rated games by myself!
Level: 54

Posts: 424/1346
EXP: 1206934
For next: 26936

Since: 03-15-04
From: Blame my parents, Eddy

Since last post: 2 days
Last activity: 1 day
Posted on 08-07-04 07:08 AM Link | Quote
Originally posted by Chickenlump
Although displayed graphics are very nice, I don't beleive them to be necessary for a good editor. It's more like eye candy, extra sugar, niceness, fluff. If your editor edits properly, and does all it does well, then I will offer up no complaints. Yoshi's Island is one of those few GREAT games that everyone and their brother wants an editor for, at any cost. That, and with editors such as Lunar Magic making everyone biased against anything not up to it's standard, I can imagine how tough it must be. Just keep smacking people down, and do what you can. I'm impressed by the screenshots already, they look so 'tech-ish'.



I have to agree with you there. I don't care if I see fancy graphics. I just need to know what I am editing.

The editor looks good so far. I would like to try this out after sprite editing is implemented. I really couldn't handle editing levels, but not sprites... that would make level editing too limited.

So, with the latest features you have implemented so far... you have to work on the proper loading of levels now, right? I would think so since in your list of things to do, you have done screen-exit support and you handled the empty space at the end of the level. How soon will that get done?
KATW

King Yoshi
"If you stare at something long enough, it can be funny."
Level: 86

Posts: 1561/3959
EXP: 6087979
For next: 54128

Since: 03-15-04

Since last post: 7 hours
Last activity: 5 hours
Posted on 08-07-04 08:31 AM Link | Quote
I dont care if this editor doesnt display GFX yet... ALL editors had to start somewhere... no matter how small that somewhere was.

Its great to see this is coming around
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 220/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-07-04 08:46 AM Link | Quote
Yes, cpubasic13, reading offsets from the internal pointer table is where I'm headed next. I also need to code the interface for screen exits, but that's just fiddly, not complicated.

I'm having a bit of trouble with that though. Here's something Cellar Dweller said earlier:
"You can get level locations from the table that starts at 0x7EA22 in the smc file. Each record in the table consists of two 24 bit little endian SNES addresses. The first is a pointer to the header/objects and the second is a pointer to the sprite list. The level numbers listed in the section on exits in Iggy's docs should be indices into this table."

When I go to 0x7EA22 in the smc, I find myself inside a very large sea of FFs. Also, I don't know anything about the format of pointers (though I know what they are, at least, and I should be able to figure it out myself once I have some).

The version of the ROM I'm using is:
Yoshi's Island (V1.0) (U).smc

Any idea what I'm doing wrong?
Violent J

Melon Bug
Level: 41

Posts: 10/749
EXP: 479154
For next: 991

Since: 05-05-04
From: The Lotus Pod

Since last post: 8 hours
Last activity: 8 hours
Posted on 08-07-04 09:09 AM Link | Quote
Two words. Beta tester? Or do you already have them? I can work with no graphix in an editor. As long as it does the job. Hope the positions aren't filled.
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 104/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 08-07-04 10:11 AM Link | Quote
I have a different version: 1.1 (U). I still know where it can be found...

That might explain why Chickenlump's gfx locations seem all wrong.

I think Iggy was using 1.1, so if the same offsets work for 1.0 then the pointers in the table should be the same. Try scanning for C7 81 16. That is the pointer to the objects of 1-1 (index 0) as it would appear in the table.

Finally, it looks like you're passing me. I don't have any kind of inserting, deleting, or saving working. I have sprite loading, though.
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 221/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-07-04 11:21 AM Link | Quote
Cellar Dweller -
0x0B03C7 is the place in the .smc that I've been loading that level from. I guess that's the same in both versions.

I found C7 81 16 at 0x0BF9C3, so that probably will work, thanks. To double check, next few bytes are 83 85 16 A2 E0 4C 76 E9 4C.

Thanks to one of the few SNES pointer docs I could find (Most of the ones on Zophar's wouldn't load ), I understand how C7 81 translates to 03C7. I've been looking at this pointer data for a while though, and can't figure out the third byte of it. I feel like such a newbie, can I have a hint?

I wouldn't be this far without your help, thanks a bunch. Inserting and deleting shouldn't be that difficult, depending on how your editor is coded internally, and saving is just loading in reverse, so you could still quite easily get ahead again.

Sonicandtails - Yep, got some. Already are a fair number of people who want to get into it, and I'll either let them in or go to open beta, depending on when I decide it's alright to add more people. I don't want to make having access to my program somehow exclusive, but I also have limits to how much testing, data, and bug reports I can deal with, so I'm keeping the numbers low.
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 106/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 08-07-04 01:45 PM Link | Quote
Yes, that looks like the level pointer table.

The third byte is the most significant byte of the address, the bank. The SNES CPU is little endian, so it stores all integers(including addresses) backwards, putting the least significant byte at the lowest numbered address.

For example, C7 81 16 is loaded by the CPU as 0x1681C7, commonly written as $16:81C7. That is the form that Lunar Address accepts, and most SNES hackers use.

The YI memory map is a mix of HiROM and LoROM. Banks 00-3F act like LoROM and banks 40-5F act like HiROM. Banks 80-DF mirror 00-5F.

In the LoROM part, 0x8000(32K) byte chunks of the ROM are mapped every 0x10000(64K) bytes starting at $00:8000(eg. the first 32K starts at $00:8000, the second 32K at $01:8000, ..., the last 32K at $3F:8000). Conversion of a LoROM address to SMC offset is simple(once you know): shift bits 16-21(the zeroth bit is the least significant) one place to the right, crushing bit 15 into oblivion(eg. 000101101000000111000111(1681C7) => 000010110000000111000111(0B01C7)) and then add the copier header size(eg. 0B01C7 => 0B03C7).

In the HiROM part, the ROM is mapped contiguously starting at $40:0000 and ending at $5F:0000. Converting a HiROM address is even simpler: Subtract 0x400000(eg. 4CE0A2 => 0CE0A2) and add the copier header size(eg. 0CE0A2 => 0CE2A2).

Here is some code you can look at if the above is not clear:

static inline int readsnesaddr(char *buf)
{
return ( ( ((int)buf[0]) &0x000000ff)
| ((((int)buf[1])<<8 )&0x0000ff00)
| ((((int)buf[2])<<16)&0x00ff0000)
);
}

static inline int yi_sn_sn2rom(YI_ROM_OBJECT *ro, SNESADDR a)
{
if (a < 0x00400000) {
return ((((a&0x00ff0000)>>1) | (a&0x00007fff)) + 0x200);
} else {
return a - 0x00400000 + 0x200;
}
}

SNESADDER is just an int. yi_sn_sn2rom accepts a YI_ROM_OBJECT pointer just in case I add support for decapitated ROMs.

The entire ROM is mapped into the CPU address space four times. For example the header for 1-1 appears at $16:81C7, $4B:01C7, $96:81C7, and $CB:01C7. I'm not 100% sure about the last two, but I remember testing one of them.

How are you storing free space information? It may not be a good idea to write tags into the ROM. I've read that SFX ROMs can't be expanded, so it may be a good idea to store a free space list file alongside the SMC file.

BTW, it looks like there is a big chunk of free space after the text. There may be much less of it in multilingual versions, though.
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 222/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-07-04 08:15 PM Link | Quote
Alright, I think I'll be able to understand that (maybe I shouldn't have stayed up late last night reading about esoteric programing languages), thanks yet again.

At the moment, the free space I'm loading is just the areas after the ends of level/screen exit data, which gets freed up when the users delete more bytes than they use. I'm simply filling everything unused with byte 00, which I check for after loading. If I run into a problem where the next byte after the data needs to be 00, I'll start terminating the free space with an FF.

For getting the editor to handle other free space, I've thought of a few different things, but I haven't looked into it much yet. One idea is to mark free areas with a repeating pattern of bytes that shouldn't occur normally, like the ASCII values of "Free", which shouldn't start repeating unless the user puts a whole lot of object 46 in the exact same spot with the exact same size. The major problem with such a design is figuring out exactly where to end the free area, since it might just happen that the next byte is in patern. Another is to tag major areas of free space with a similar unatural byte patern and a length, and continue using the 00 method for small areas after levels. Since such a tag will only be in place in areas that are still free, it shouldn't waste any space.

EDIT: Alright, I got that working. Thanks a ton Cellar Dweller!

Many of the levels I've tried when loading by index have worked much better than the offset ones (1-4 is recognizable now), so I think some of the offsets are indeed different between the two ROMs.

Beta testers - Same link, except with version 0.16, instead of 0.15. Try out load by index. Yes, that list is short, but you can just put an index into the text box.

EDIT - 1-4 Screenshot, large (drag link to URL bar or copy/paste or whatever works for you)


(edited by Squash Monster on 08-07-04 07:22 PM)
Golden Yoshi

Pokey
Level: 41

Posts: 122/693
EXP: 445575
For next: 34570

Since: 03-15-04
From: Edison, NJ

Since last post: 17 hours
Last activity: 8 hours
Posted on 08-09-04 07:25 AM Link | Quote
Very good, the editor is running more smoothly now that you can load the levels by index. Any recent progress to show?
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 225/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-09-04 07:26 AM Link | Quote






Here you can see three things - I tweeked transparent mode to be a bit more visable, I added an option for a small grid, and, most importantly, there are sprites!

At the moment, I need to make it possible to tell which of the two options sprites are, add the ability to add sprites, and add the ability to save them. The first of those will require a bit more work in the lovely world of data files , so I'm done for the day.
Golden Yoshi

Pokey
Level: 41

Posts: 123/693
EXP: 445575
For next: 34570

Since: 03-15-04
From: Edison, NJ

Since last post: 17 hours
Last activity: 8 hours
Posted on 08-09-04 07:34 AM Link | Quote
Nice! Those gridlines will make it easier to size objects, especially the ones that need to be set vertically to go horizontally. Keep at it.
Dylan
Devil Trumpets and Angel Trombones ~
Level: 54

Posts: 599/1407
EXP: 1181697
For next: 52173

Since: 06-19-04
From: Ottawa, Canada.

Since last post: 1 day
Last activity: 6 hours
Posted on 08-09-04 09:59 AM Link | Quote
Wow, good progress, SM . I have an idea for a neat feauture you could implement that would work in conjunction with the grid. Have the option to allow block snapping to grid, so the blocks would, well, snap to the grid to allow more orderly placement of the blocks. If you have the time, and are willing to, of course.

Keep up your diligence, SM.
Cellar Dweller

Flurry
!!!
Level: 27

Posts: 109/269
EXP: 107817
For next: 8342

Since: 03-15-04
From: Arkansas

Since last post: 16 days
Last activity: 34 min.
Posted on 08-09-04 10:59 AM Link | Quote
Chickenlump archived a bunch of docs before the crash. Among them is big list of sprite descriptions and a description of the sprite data format.

The download URL has gone 404, so I uploaded the last copy I downloaded. It's at http://s91407720.onlinehome.us/acmlmboard_files/romhacking/yi/YIData.zip.

Gb-Ky
The Arkichef

Red Tektite
Level: 15

Posts: 28/75
EXP: 15823
For next: 561

Since: 03-19-04

Since last post: 192 days
Last activity: 182 days
Posted on 08-09-04 04:32 PM Link | Quote
Hey this editor is coming on reeeaaal nicely! Looking good!
Just one thing...I dont mean to be nitpicking but I couldnt help noticing '1C - 1 Beem' in the screenshot. Um, shouldn't that be Beam? And I like the coloured blocks too! They look groovy!
Squash Monster

New Age Retro Hippie
Togateiru Fohku Kohgeki!!
GRUNGE no HAMSTER otona bite
Peace love and turnpike!

Level: 40

Posts: 226/677
EXP: 430507
For next: 10802

Since: 03-15-04
From: Maryland (of the Country Between Canada and Mexico)

Since last post: 5 hours
Last activity: 5 hours
Posted on 08-09-04 07:33 PM Link | Quote
Golden Yoshi - Thanks.

Gb-Ky


(edited by Squash Monster on 08-09-04 05:35 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 - EggVine - Yoshi's Island Editor | |


ABII


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



Page rendered in 0.021 seconds.