Tile editor
Moderator: ZSNES Mods
Tile editor
Hi, this is an email I was going to send out to the makers of Zsnes, but I couldn't find any of their email addresses, so I just decided to post it here. It's a request for an addon to Zsnes. Hopefully either they or someone else will see it who can make a patch or something. Here's the email:
Would it be possible to add a simple tile editor to Zsnes? With the stand alone editors that are available, it's impossible to tell what's what 90% of the time. You always just end up giving up because it's no fun editing graphics that way. So I figured the best way to fix that would be to have one that's part of an emulator! That way you could see the results right away. The way it would work would be simple: pause, click on a tile, edit the pixels, then save the smc. Here's an example of how it might look:
http://www.geocities.com/fox95871/Tile_editor.JPG
Hope to hear from you soon! I think this could start a great new hobby/unhealthy obsession for a lot of people!
(end of email)
Well that's it. Hopefully someone will see this and email me, but for now all I can do is what I just did I guess. You probably already guessed, but I'm not trying to make any money off this. It's just something I really want and I don't know how to program except in Blitz3D. Hope to hear from someone soon :)
Would it be possible to add a simple tile editor to Zsnes? With the stand alone editors that are available, it's impossible to tell what's what 90% of the time. You always just end up giving up because it's no fun editing graphics that way. So I figured the best way to fix that would be to have one that's part of an emulator! That way you could see the results right away. The way it would work would be simple: pause, click on a tile, edit the pixels, then save the smc. Here's an example of how it might look:
http://www.geocities.com/fox95871/Tile_editor.JPG
Hope to hear from you soon! I think this could start a great new hobby/unhealthy obsession for a lot of people!
(end of email)
Well that's it. Hopefully someone will see this and email me, but for now all I can do is what I just did I guess. You probably already guessed, but I'm not trying to make any money off this. It's just something I really want and I don't know how to program except in Blitz3D. Hope to hear from someone soon :)
-
- "Your thread will be crushed."
- Posts: 1236
- Joined: Wed Jul 28, 2004 1:49 am
- Location: Not in Winnipeg
- Contact:
It is highly unlikely you will get a response by email.
As for your request, I agree a tile editor would be cool (I remember good old Nesticle had one). However, it is not likely to be something that is going to happen unless some third party decides to do that.
As for your request, I agree a tile editor would be cool (I remember good old Nesticle had one). However, it is not likely to be something that is going to happen unless some third party decides to do that.
<pagefault> i'd break up with my wife if she said FF8 was awesome
Can't be done with more than a ~10-20% success rate. It's not like NESticle where most NES ROMs couldn't afford compression overhead so you could directly manipulate the NES tiles. The files themselves were also a lot smaller so manual searches over the whole ROM for where tiledata came from was a lot easier and safer.
For the SNES, most data is compressed. No emulator is going to be able to automagically recompress tiledata and insert it back in place perfectly. And even when not compressed, tracking tiledata back to its original source in ROM can be very computationally expensive. Sometimes it goes through transforms and ROM->RAM->VRAM transfers rather than directly via ROM->VRAM.
If you still don't believe me for some reason, find an emulator called SNemul. Its author tried to implement this, but he didn't understand the SNES from a ROM hackers' perspective. He realized the same thing I said above and abandoned the feature because it almost never worked.
For the SNES, most data is compressed. No emulator is going to be able to automagically recompress tiledata and insert it back in place perfectly. And even when not compressed, tracking tiledata back to its original source in ROM can be very computationally expensive. Sometimes it goes through transforms and ROM->RAM->VRAM transfers rather than directly via ROM->VRAM.
If you still don't believe me for some reason, find an emulator called SNemul. Its author tried to implement this, but he didn't understand the SNES from a ROM hackers' perspective. He realized the same thing I said above and abandoned the feature because it almost never worked.
-
- ZSNES Developer
- Posts: 6747
- Joined: Tue Dec 28, 2004 6:47 am
It would be simpler to say... it's why there are no tile replacement/texture/sprite packs for the SNES.byuu wrote:Can't be done with more than a ~10-20% success rate. It's not like NESticle where most NES ROMs couldn't afford compression overhead so you could directly manipulate the NES tiles. The files themselves were also a lot smaller so manual searches over the whole ROM for where tiledata came from was a lot easier and safer.
For the SNES, most data is compressed. No emulator is going to be able to automagically recompress tiledata and insert it back in place perfectly. And even when not compressed, tracking tiledata back to its original source in ROM can be very computationally expensive. Sometimes it goes through transforms and ROM->RAM->VRAM transfers rather than directly via ROM->VRAM.


Those graphics packs don't count.

The MOD converter(?) was cool though.If you still don't believe me for some reason, find an emulator called SNemul. Its author tried to implement this, but he didn't understand the SNES from a ROM hackers' perspective. He realized the same thing I said above and abandoned the feature because it almost never worked.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Need a wiki or something so we can write up detailed answers only once and then link people, heh.It would be simpler to say... it's why there are no tile replacement/texture/sprite packs for the SNES. :P :wink:
Hell yeah it was :DThe MOD converter(?) was cool though.
Had a really cool interface for a DOS app, too.
Didn't sound nearly correct, but the changes actually made them kind of unique and cool. And if I recall, someone else tried a MIDI convertor with much less success.
*nod*, that was awesome moment alright,badinsults wrote:(I remember good old Nesticle had one).
eventhough you can only edit the tiles the changes however, directly reflected in game.
the editing wasn't permanent, if the game decided to write back the tile slot, you lose the changes, but it was really cool for that time.
-
- ZSNES Shake Shake Prinny
- Posts: 5632
- Joined: Wed Jul 28, 2004 4:15 pm
- Location: PAL50, dood !
... closer to 20% of the reason why it's not feasible.Deathlike2 wrote:It would be simpler to say... it's why there are no tile replacement/texture/sprite packs for the SNES.
Interrupts, screen priorities, edge continuity...
皆黙って俺について来い!!
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Code: Select all
<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
-
- Seen it all
- Posts: 2302
- Joined: Mon Jan 03, 2005 5:04 pm
- Location: Germany
- Contact:
They don't do compression either, unless they are game-specific editors.
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
bsnes launcher with recent files list
-
- ZSNES Shake Shake Prinny
- Posts: 5632
- Joined: Wed Jul 28, 2004 4:15 pm
- Location: PAL50, dood !
Look here:
A game-specific tile editor will edit the ROM image contents. The game code will then load the new data, work with it, send it to the PPU and the new image is sent to your display device.
Keywords: GAME SPECIFIC. Which means someone spent time to reverse engineer where in the ROM the base data lies (and make a program to insert the right data format back).
Changing the vram would only work until it's refreshed, and changing the source would almost never work due to it being compressed most of the time (in a game-specific manner, so you'd have to build a compressor from the decompression code).
Just give up while you're ahead. You're not the first (and sadly likely not the last) to ask that sort of stuff. Even if you don't understand why, it can't be done like this.
And even if we explain enough for you to understand why, it won't be any closer to possible, so don't expect more details.
Code: Select all
ROM -> RAM -(decompression)-> VRAM -> display device
Keywords: GAME SPECIFIC. Which means someone spent time to reverse engineer where in the ROM the base data lies (and make a program to insert the right data format back).
Changing the vram would only work until it's refreshed, and changing the source would almost never work due to it being compressed most of the time (in a game-specific manner, so you'd have to build a compressor from the decompression code).
Just give up while you're ahead. You're not the first (and sadly likely not the last) to ask that sort of stuff. Even if you don't understand why, it can't be done like this.
And even if we explain enough for you to understand why, it won't be any closer to possible, so don't expect more details.
皆黙って俺について来い!!
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Code: Select all
<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
-
- Romhacking God
- Posts: 922
- Joined: Wed Jul 28, 2004 11:27 pm
- Contact:
As the guys here have tried to explain to you, your not quite grasping what's going on. You're missing the link that what is showing on the screen is not coming from the ROM. It's coming from VRAM. The data in VRAM that is shown on the screen can be and often is dynamically assembled, swapped in and out all the time, and CANNOT be tied back to any specific ROM location unless someone did GAME SPECIFIC work to figure it out.fox95871 wrote:So how is it all the stand alone tile editors are able to do it? There must be a way...
Stand alone tile editors don't work for compressed or dynamic graphics either. For the graphics the tile editors DO work on, the emulator CAN'T because as mentioned, there's NO LINK to what appears on screen and ROM locations thanks to usage of VRAM.
In the Nesticle days on the NES, for the games you could actually edit in Nesticle (even with Nesticle and the NES, you could only edit some games) you had a special portion of ROM loaded directly into VROM. This was static. It didn't change and it corresponded exactly to specific ROM locations. All graphics used for the entire game fit into this space. NES games that swapped CHR data weren't able to be edited by Nesticle because the link to ROM location is then lost.
So, I hope that helps clear it up a bit more for you. I tried to re-explain in general terms. Without game specific hacking, you cannot edit SNES game's graphics in an emulator on the fly like that. It just won't work in the way you envision. It can't without game specific work done for all supported games. And I can tell you even if you did that, it would be a lot of work to support certain games. That's why people end up making game specific editors when it comes to the SNES. It's simpler and works better to do it that way.
I'd advise you try and do some ROM hacking, read up on the hardware and how graphics are addressed if you want to try and understand why what we're telling you.
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
I would, but I have too much else I'm studying right now (Maya and Blitz3D) to add something else that's complicated. I was just hoping one existed already, or someone who likes programming could make one easily enough, cause like I said, I'm not a programmer. That's too bad there's no way to track what tile's loaded. Who knows, maybe someone will read just that and say, "What? Of course there is! You just..." Then I could edit games and so could other people. But if it ends here, I guess it's meant to be. But I'll stay hopeful, so if someone finds a way, post it here. At the programming forum I go to, people figuring out ways to do previously impossible things is a daily event. All it takes is wanting it, and having a good attitude :)
Last edited by fox95871 on Wed Mar 11, 2009 9:22 pm, edited 1 time in total.
-
- ZSNES Developer
- Posts: 6747
- Joined: Tue Dec 28, 2004 6:47 am
What part of game specific do you not understand?
It is not a matter of desire... it is a matter of it being usable across the board which is not possible in this case.
It is not a matter of desire... it is a matter of it being usable across the board which is not possible in this case.
Last edited by Deathlike2 on Wed Mar 11, 2009 9:23 pm, edited 1 time in total.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Because that's not what I want. It's not possible now, but I'm saying if someone could find a way to work around what's making it impossible somehow, then it wouldn't be.
Last edited by fox95871 on Wed Mar 11, 2009 9:28 pm, edited 1 time in total.
-
- ZSNES Developer
- Posts: 6747
- Joined: Tue Dec 28, 2004 6:47 am
Every explaination here is telling you that it is not possible, because games are not developed in the same vacuum. That is, they all render the screen differently with different formats, potentially with the internal data compressed and whatever details to go with that.
If what you see was designed in a uniform way (that is, they all render it the same way), then perhaps it would be doable, but we're repeating the same message. It isn't realistic.
If what you see was designed in a uniform way (that is, they all render it the same way), then perhaps it would be doable, but we're repeating the same message. It isn't realistic.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
Because you said:That's not what I want. Why do you think I don't understand it?
That's not how it works. Just like it's been proven mathematically that you can't make a sorting algorithm better than O(n log n) -- no matter how hard you try or how much you want to, you cannot write a generic tile editor as you want for SNES emulators.At the programming forum I go to, people figuring out ways to do previously impossible things is a daily event. All it takes is wanting it, and having a good attitude :)
It's not a matter of someone coming along with a new genius algorithm. This will never, ever happen in a fully generic manner that supports all games as you want; and I am 100% certain of that fact. And I say this as someone with over a decade of experience in both translating and emulating SNES games.
I'm not trying to be rude, I just don't want you or others to have unrealistic expectations that this may happen one day.
Last edited by byuu on Wed Mar 11, 2009 9:38 pm, edited 1 time in total.
-
- ZSNES Developer
- Posts: 6747
- Joined: Tue Dec 28, 2004 6:47 am