Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
1 user currently in Rom Hacking: |
Acmlm's Board - I2 Archive - Rom Hacking - EggVine - Yoshi's Island Editor | | | |
Pages: 1 2 3 4 5 6 | Add 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 |
| ||
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 knuckGo 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 KnuckNo, 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 |
| ||
*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. |
| ||
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 |
| ||
Originally posted by Chickenlump 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 |
| ||
Thanks Max .Originally posted by ChickenlumpThanks 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 |
| ||
Originally posted by Chickenlump 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 |
| ||
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 |
| ||
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: Since last post: 8 hours Last activity: 8 hours |
| ||
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. |
| ||
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 |
| ||
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. |
| ||
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:
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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 |
| ||
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. |
| ||
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 |
| ||
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 |
| ||
Golden Yoshi - Thanks. Gb-Ky (edited by Squash Monster on 08-09-04 05:35 PM) |
Pages: 1 2 3 4 5 6 | Add to favorites | "RSS" Feed | Next newer thread | Next older thread |
Acmlm's Board - I2 Archive - Rom Hacking - EggVine - Yoshi's Island Editor | | | |