04-26-2018, 08:47 PM
Hello everybody.
For some time, I have been riping the content of "Utopia, Creation of a Nation", a SNES game.
I know that there is already a section for this game, but it only contains a small number of assets.
I have about 500 distincts assets.
The problem is : between the moment I started and now, I changed the method used for ripping content.
Several times.
I know myself a bit and I know there is a high risk that all of this content just end up nowhere, that I'll just give up the whole thing.
I recently had a HDD problem and almost lost A LOT of things (these assets being the least interesting of them).
Even this post has been written little by little. Add to this that english is not my native language.
So, here it is. It's not yet "done" and it's why I need a bit of help.
First, it's not organized on a "spritesheet". It's invidual files. However, I guess that there exists some tool to do this automagically so it shouldn't be too much of a problem. I myself have a script (php) to gather them (which create a PNG which I pass through an other program, in C, I made to generate a compressed file in the form of a C source file containing an array and automated image extraction so I don't need to link SDL_image and libpng+zlib, only zlib blablabla).
Then, I need information about color in the SNES. I use zsnes, but it adds a 2 pixels black line at the bottom of the screen.
For full screen images, I patched them with 2 lines from snes9x BUT colors are a bit different. The compression script mentionned above contains a "magnet" algorithm (to palettize the image), but I don't know what is the REAL color I should have.
So I need informations about the SNES, how it handles colors and how should a "magnet" red green and blue channels.
Is white 255,255,255 ? In true color yes, but in SNES ?
And is black 0,0,0 ? Same as above.
And, when tiles are like "autotiles" (for example a lake) should I use special names ? Like "left_border", "bottom_corner", "middle" etc ? Right know I use only numbers.
Here is a zip containing most of this work (including copies etc. I am going to clean this up as soon as I'll have ripped everything).
https://drive.google.com/open?id=1uAbt6s...ZOZBs9yWuV
You have 2 "root" directories :
_creation
java
_creation was used to ... well "create" things for my program. What you want in it is: "resources - Copie". It contains units and buildings. Also tiles, but, "old fashion" ripped, so there is likely more errors in there. I also planned to extract only the "snow" planet back then.
It also contains some sound file, but I realized recently (today) that I ripped them WITH song filter and that I need to extract them again.
java : it's the tool I ended up with. It implements the "left and right" method described at the end of the post.
+ it uses MD5 hash to detect if a tile has already been ripped (faster than a pixel by pixel comparison). As is, it contains absolute path hardcoded so it's not usefull. But you have it (and I can edit it)
I made it myself, so I am absolutly sure I have the right to share it XD
And you have tiles extracted in : grass, pink, red, rock, snow.
It's NOT over. There is still some little thing missing, I am pretty sure. And, as I said, I need a little help.
There is 5 different kind of planet in "utopia":
red
green (moss)
white (snow)
grey (rock)
pink
Once again I need help. Should I use only "colors" (pink etc.) ? Grass and snow are good names, but I couldn't find a name for "pink".
I am asking a question because, with the clone of Utopia I am making, I also made an editor (I didn't have a HDD for a week, but I had a usb key and a browser ... so, I started an editor in javascript XD).
There is two planets for each "theme
On each planet there is an alien race, so you have 10 alien races.
Each alien has at least one type of unit. But they can have more.
It is (was) especially hard to rip alien units, as they tend to destroy everything and you can't control them.
I also "ripped" the construction time for each building, how many available worker you need, how much energy it consumes, how much units it produces etc.
And also some piece of algorithms, key values, some texts, box placement, gui speed (for the movement of the cursor and the opening of windows). I just don't know what you want.
once again, need help : do you know a method to extract easily texts from a rom (instead of doing it by hand).
However, here is some tip/trick if people want to do that themselves.
If you want to play and enjoy the game, you may as well stop reading now, as you have cheat and bug use below.
1) You can't build farther than 12 tile from a fluxpod (= you need to be "close" to a fluxpod to build, close=12 tile radius).
EXCEPT when you build fluxpods at the very top or the very bottom (first and last line of the map) of the map.
There you can build fluxpod (if you have enough money&colons, if the ground is buildable etc.).
And once the fluxpod is done building, you can use it as a regular fluxpod and build whatever you want.
2) Ennemies tend to don't be hostile just after they enter the map. Build on the border of the map, you'll be mostly safe.
3) Ennemies need a "buildable" tile to spawn. I am not talking about the "near fluxpod" thing, they need a free tile where you could build something. Make a wall around the map : no new ennemy will enter.
4) We are on a Super Nintendo, so there is little processing power. For this reason, devs didn't implement a smart AI and use a trick instead: ennemy units go from a marker to the other.
Move the marker, you'll change where they go (their path is updated once they reach the previous destination, however).
This is not stupid at all, as you use yourself these marker to move your units. Without knowing it, when you was sending units to key points you was also giving the ennemy a location to attack.
Combining all of this, you can start the game by building a flux pod at the top of the map and extend on the border from this. If you are fast enough, you'll be able to leave the center of the map before they attack. Once it's done, you can observe them and take as much pictures as you want.
If you want to rip tiles it's a bit easier.
Global information : a tile is 32 pixel width and at least 15 pixel height. It can be higher without problem (for example most building/mountain/tree are higher)
Tiles connect left and right, no "up and down". This mean that you have rows of tiles, not columns.
The bottom of a tile is typically a "stairs" of 2*1. This is sometime not the case and it leads to tiles "bugging over" the border of the viewport, or having a hole.
You need to use what I call the "left and right method".
First, disable layer "BG2". It's the border and the background.
Put the wanted tile at the leftmost of the area. Take a screenshot.
Put the wanted tile at the rightmost of the area. Take a screenshot.
Now you can extract the 2 half of the tile, 16 and 16 pixels. You can take a vertically big rectangle, as you have only black beneath and below the tile.
You can also try the "top and bottom method", but it will not work well in some case ( as tiles can be higher than 15 pixel they can overlap tiles above them).
Note that you can easily find, with zsnes cheat, the "code" to freeze the day. If you do that as soon as you start the game, you'll be able to rip every tiles you want without being bothered with colony management.
(well, earth will try to sell you colons time to time but it's all).
Thanks for reading.
Sorry for the almost unreadable post.
For some time, I have been riping the content of "Utopia, Creation of a Nation", a SNES game.
I know that there is already a section for this game, but it only contains a small number of assets.
I have about 500 distincts assets.
The problem is : between the moment I started and now, I changed the method used for ripping content.
Several times.
I know myself a bit and I know there is a high risk that all of this content just end up nowhere, that I'll just give up the whole thing.
I recently had a HDD problem and almost lost A LOT of things (these assets being the least interesting of them).
Even this post has been written little by little. Add to this that english is not my native language.
So, here it is. It's not yet "done" and it's why I need a bit of help.
First, it's not organized on a "spritesheet". It's invidual files. However, I guess that there exists some tool to do this automagically so it shouldn't be too much of a problem. I myself have a script (php) to gather them (which create a PNG which I pass through an other program, in C, I made to generate a compressed file in the form of a C source file containing an array and automated image extraction so I don't need to link SDL_image and libpng+zlib, only zlib blablabla).
Then, I need information about color in the SNES. I use zsnes, but it adds a 2 pixels black line at the bottom of the screen.
For full screen images, I patched them with 2 lines from snes9x BUT colors are a bit different. The compression script mentionned above contains a "magnet" algorithm (to palettize the image), but I don't know what is the REAL color I should have.
So I need informations about the SNES, how it handles colors and how should a "magnet" red green and blue channels.
Is white 255,255,255 ? In true color yes, but in SNES ?
And is black 0,0,0 ? Same as above.
And, when tiles are like "autotiles" (for example a lake) should I use special names ? Like "left_border", "bottom_corner", "middle" etc ? Right know I use only numbers.
Here is a zip containing most of this work (including copies etc. I am going to clean this up as soon as I'll have ripped everything).
https://drive.google.com/open?id=1uAbt6s...ZOZBs9yWuV
You have 2 "root" directories :
_creation
java
_creation was used to ... well "create" things for my program. What you want in it is: "resources - Copie". It contains units and buildings. Also tiles, but, "old fashion" ripped, so there is likely more errors in there. I also planned to extract only the "snow" planet back then.
It also contains some sound file, but I realized recently (today) that I ripped them WITH song filter and that I need to extract them again.
java : it's the tool I ended up with. It implements the "left and right" method described at the end of the post.
+ it uses MD5 hash to detect if a tile has already been ripped (faster than a pixel by pixel comparison). As is, it contains absolute path hardcoded so it's not usefull. But you have it (and I can edit it)
I made it myself, so I am absolutly sure I have the right to share it XD
And you have tiles extracted in : grass, pink, red, rock, snow.
It's NOT over. There is still some little thing missing, I am pretty sure. And, as I said, I need a little help.
There is 5 different kind of planet in "utopia":
red
green (moss)
white (snow)
grey (rock)
pink
Once again I need help. Should I use only "colors" (pink etc.) ? Grass and snow are good names, but I couldn't find a name for "pink".
I am asking a question because, with the clone of Utopia I am making, I also made an editor (I didn't have a HDD for a week, but I had a usb key and a browser ... so, I started an editor in javascript XD).
There is two planets for each "theme
On each planet there is an alien race, so you have 10 alien races.
Each alien has at least one type of unit. But they can have more.
It is (was) especially hard to rip alien units, as they tend to destroy everything and you can't control them.
I also "ripped" the construction time for each building, how many available worker you need, how much energy it consumes, how much units it produces etc.
And also some piece of algorithms, key values, some texts, box placement, gui speed (for the movement of the cursor and the opening of windows). I just don't know what you want.
once again, need help : do you know a method to extract easily texts from a rom (instead of doing it by hand).
However, here is some tip/trick if people want to do that themselves.
If you want to play and enjoy the game, you may as well stop reading now, as you have cheat and bug use below.
1) You can't build farther than 12 tile from a fluxpod (= you need to be "close" to a fluxpod to build, close=12 tile radius).
EXCEPT when you build fluxpods at the very top or the very bottom (first and last line of the map) of the map.
There you can build fluxpod (if you have enough money&colons, if the ground is buildable etc.).
And once the fluxpod is done building, you can use it as a regular fluxpod and build whatever you want.
2) Ennemies tend to don't be hostile just after they enter the map. Build on the border of the map, you'll be mostly safe.
3) Ennemies need a "buildable" tile to spawn. I am not talking about the "near fluxpod" thing, they need a free tile where you could build something. Make a wall around the map : no new ennemy will enter.
4) We are on a Super Nintendo, so there is little processing power. For this reason, devs didn't implement a smart AI and use a trick instead: ennemy units go from a marker to the other.
Move the marker, you'll change where they go (their path is updated once they reach the previous destination, however).
This is not stupid at all, as you use yourself these marker to move your units. Without knowing it, when you was sending units to key points you was also giving the ennemy a location to attack.
Combining all of this, you can start the game by building a flux pod at the top of the map and extend on the border from this. If you are fast enough, you'll be able to leave the center of the map before they attack. Once it's done, you can observe them and take as much pictures as you want.
If you want to rip tiles it's a bit easier.
Global information : a tile is 32 pixel width and at least 15 pixel height. It can be higher without problem (for example most building/mountain/tree are higher)
Tiles connect left and right, no "up and down". This mean that you have rows of tiles, not columns.
The bottom of a tile is typically a "stairs" of 2*1. This is sometime not the case and it leads to tiles "bugging over" the border of the viewport, or having a hole.
You need to use what I call the "left and right method".
First, disable layer "BG2". It's the border and the background.
Put the wanted tile at the leftmost of the area. Take a screenshot.
Put the wanted tile at the rightmost of the area. Take a screenshot.
Now you can extract the 2 half of the tile, 16 and 16 pixels. You can take a vertically big rectangle, as you have only black beneath and below the tile.
You can also try the "top and bottom method", but it will not work well in some case ( as tiles can be higher than 15 pixel they can overlap tiles above them).
Note that you can easily find, with zsnes cheat, the "code" to freeze the day. If you do that as soon as you start the game, you'll be able to rip every tiles you want without being bothered with colony management.
(well, earth will try to sell you colons time to time but it's all).
Thanks for reading.
Sorry for the almost unreadable post.