News:

11 March 2016 - Forum Rules

Main Menu

Digimon World [PSX] Hacking Project

Started by Romsstar, February 13, 2011, 05:36:00 PM

Previous topic - Next topic

Romsstar

#40


Just a WIP screen of my editor.
It will be able to change a lot of ingame values. So far I got only the starters and some stuff is still fuzzy but its getting there.

The "Extract SCN" function is new, it will dump the whole script into parts.

gledson999

Quote from: Romsstar on May 21, 2012, 06:14:05 AM


Just a WIP screen of my editor.
It will be able to change a lot of ingame values. So far I got only the starters and some stuff is still fuzzy but its getting there.

The "Extract SCN" function is new, it will dump the whole script into parts.

Its is Awesome Romsstar this excellent tools will extract and insert in game dialog?

Romsstar

If it would only do that, that would be boring.
It will include a lot of values the game uses to change a lot of things. When I finally succeed in finding it, also the spawn rate for e.g

Fenixbr

Romsstar could find the table Digimon World 2. This Super RPG game  :woot!:

gledson999

Quote from: Fenixbr on May 22, 2012, 11:40:56 AM
Romsstar could find the table Digimon World 2. This Super RPG game  :woot!:
This topic are not for Digimon World 2, but are here  http://www.mediafire.com/?ctzk0lpct2lokzr

Fenixbr

Quote from: gledson999 on May 22, 2012, 07:56:47 PM
This topic are not for Digimon World 2, but are here  http://www.mediafire.com/?ctzk0lpct2lokzr

This table and STR for the file? Game DW2 ?  :banghead:

See the image files from Digimon World 2 below:  :'(


Romsstar

If you intend to hack Digimon World 2 create a separate Thread for it, please don't use this one for it.
It is a horrible game which I don't want to be mixed up with the first one.

DeltaStrata

While I don't agree with your opinion of the game, I do agree the two should not be confused.

Also, glad to see you're still kicking.  =)


gledson999

very well I'm following this project romsstar congratulation

Romsstar

Bringing a new update!

Progress on the cracking of the Technique RNG System.

While I haven't exactly figured out how the System works for training ( but I got already the basic idea)

I can now work with the chances of learning techniques in battle and with some in training.

A basic implementation is already in the program,
but this is only a very basic draft, for I haven't exactly figured out how I want to align everything.

Anyways, for showing progress:



The main point is I understand the system.

I also located some Enemy Data, which is for some reason embedded into the Map System. Makes things a bit complicated as it means having to write algorithms for different situations which isn't exactly something I'm capable of.

But we will see about that.

Edit: Yeah probably will switch to dropboxes or a Listview, as I don't want the program to look bulky. Suggestions and Support is welcome, soon I guess I can release a basic version of the Editor (Or at least I sure hope so)

DeltaStrata

Embedded how?  Is it layered in haphazard chunks, or is each enemy/group of enemies associated with a specific map?  The devs may have decided to write the code such that they only need a branch statement to reach the enemy data for that map, rather than put all the enemy data in the same place and navigate there with a subroutine, which would take longer.  Of course, that does mean there's potentially redundant code—and that it's harder to modify said code.  =P  If you can find the initialization code for map loading, you might be able to base the algorithm around that, so you won't have to find each instance of a given enemy's data to change it.

For the Editor UI, it might be nice to have a grid similar to how it's displayed in-game—not necessarily with icons, just in that format.  Maybe make it possible to change multiple entries at once; e.g. select row, select column, select all.

Romsstar

Quote from: DeltaStrata on June 06, 2012, 12:40:06 AM
Embedded how?  Is it layered in haphazard chunks, or is each enemy/group of enemies associated with a specific map?  The devs may have decided to write the code such that they only need a branch statement to reach the enemy data for that map, rather than put all the enemy data in the same place and navigate there with a subroutine, which would take longer.  Of course, that does mean there's potentially redundant code—and that it's harder to modify said code.  =P  If you can find the initialization code for map loading, you might be able to base the algorithm around that, so you won't have to find each instance of a given enemy's data to change it.

For the Editor UI, it might be nice to have a grid similar to how it's displayed in-game—not necessarily with icons, just in that format.  Maybe make it possible to change multiple entries at once; e.g. select row, select column, select all.

Yeah it is exactly that way and yeah more difficult to modify. I sure hope I can do that, since the Map Files contain:

- The Warp Points
- The Enemies (changing them led to disappering though, I wanted to input other enemies,)
- The Enemy Data
- (Alleging) The Item Spawn Data, although I can't confirm that yet.

Ze0N

Hey, I want to help out with this project.

I used to love playing this game on PSX and I recently got it working on an emulator. I wanted to start reverse engineering it for fun and then I found this thread. I know many programming languages but I haven't done much reverse engineering before (apart from a few PC games). I've spent several hours reading up on the PSX and the PS-X EXE format. I also had a look at what people have figured out already such as the TFS files and game font etc.

I've started coding a map viewer/editor. I know there is already the TFS viewer, but I think it would be nice to make a program where you give it an IMG/BIN file and then it displays all maps in a treeview. You could export/import the image for each map and then save back to an IMG/BIN file. Maybe it could also link the maps together to show it as one big map if it looks at the player spawn data in the MAP files (I haven't looked at these files yet). I already have the map editor reading the TFS files so I'll post screenshots soon.

Romsstar

Quote from: Ze0N on June 27, 2012, 10:23:43 AM
Hey, I want to help out with this project.

I used to love playing this game on PSX and I recently got it working on an emulator. I wanted to start reverse engineering it for fun and then I found this thread. I know many programming languages but I haven't done much reverse engineering before (apart from a few PC games). I've spent several hours reading up on the PSX and the PS-X EXE format. I also had a look at what people have figured out already such as the TFS files and game font etc.

I've started coding a map viewer/editor. I know there is already the TFS viewer, but I think it would be nice to make a program where you give it an IMG/BIN file and then it displays all maps in a treeview. You could export/import the image for each map and then save back to an IMG/BIN file. Maybe it could also link the maps together to show it as one big map if it looks at the player spawn data in the MAP files (I haven't looked at these files yet). I already have the map editor reading the TFS files so I'll post screenshots soon.

Sounds great looking forward to it. What I think would be nice is to link the MAP and the TFS files as the MAP files contain spawn data for enemies and items.

Ze0N

#55
I've found several anomalies while comparing the TFS files to what is displayed in game. It makes me think that the TFS files aren't even used by the game, which is ridiculous because they take up most of the disc space. I'm sure there must be a reason for everything.

I'll try to explain the strange things I've noticed...

Firstly, for the map MAYO10.TFS, I open it in my map editor and this is the exported image, which is fine:
http://i.imgur.com/lLkX1.png
The TFS file doesn't contain enough blocks to fill the whole image so we are left with some large empty areas. In the game, we don't see these:
http://i.imgur.com/1PkHx.png
http://i.imgur.com/jPBDI.png
As you can see, the area is filled in with a similar colour to the water, but... the right corner in the last image only slightly cuts into the waves. On the exported image, the missing block cuts into the waves much more.

Secondly, for the map TROP03.TFS, the exported image is:
http://i.imgur.com/BGFo4.png
It is also missing some blocks, and we can see that one of these is missing in game on this screenshot (bottom right corner):
http://i.imgur.com/lzF9m.png
But strangely enough, another one of the missing blocks has actually been filled with an image in game (top right corner):
http://i.imgur.com/0Cqvm.png

Finally, I tried to modify one of the TFS files to see if the changes would appear in game. I modified MAYO01.TFS to move the first block onto a new row at the bottom, and to colour in some pixels at the top of that block. This is how it looked after I modified it:
http://i.imgur.com/bKZFA.png
But in game, it seems like nothing has changed:
http://i.imgur.com/8hz9G.png
:huh:
EDIT: I coloured in more pixels and I could see the changed pixels in game now (it was cut off by the camera before). But the block is still in it's usual place and not where I moved it to. I think the position of blocks might be loaded by the MAP file and ignored in the TFS file maybe? The MAP files might also contain some collision data, camera bounds data and animation data (like the flashing direction screens). I will investigate.
New Modified MAYO01.TFS: http://i.imgur.com/rFUJ1.png
In Game: http://i.imgur.com/OMpyi.png
EDIT2: I decided to remove the first block from the TFS file and place it right at the end of the file. This was to see if the block positions in the TFS files are ignored and the MAP files (I guess) have a position for each block. I was right.
What it should look like: http://i.imgur.com/TbHGE.jpg
What it looks like in game: http://i.imgur.com/6tMoW.png & http://i.imgur.com/8DspK.png
Also in the 2nd image, notice how there is a toilet image overlayed on top of the map. This explains why we can walk behind the leaves. I guess this toilet image is also inside the MAP file and placed on top of everything. Maybe the missing block (which appears in game) from TROP03.TFS is also stored in the TROP03.MAP file.

So in summary:
MAYO10 is somehow filling in a missing section of the map with blue (but the missing section looks different in game).
TROP03 is getting a 128x128 block from somewhere other than the TFS file.
Modifying the file MAYO01.TFS seems to make no difference in game. I checked that it correctly modified the IMG file.
EDIT: Modifying the file MAYO01.TFS to move a block position seems to make no difference in game.
EDIT2: The map size and location of each block in the TFS file is ignored by the game engine. These values must be stored in the MAP files.
Any ideas?

I will keep working on the map editor and I'm going to try and figure out the MAP files.

EDIT3: I discovered that you can modify the map and still load your old saved games fine. I've applied the same block shift technique to MAYO10.TFS and discovered that the missing block areas on the TFS file are filled in by another image (presumably from the MAP file). This explains the first problem above: http://i.imgur.com/84R1Y.png
I also noticed that the animations were overlayed on top (for the waves and the vending machine) and the computer item. They will probably be in MAP file as well: http://i.imgur.com/gQDxl.png
I guess I will also find the same thing for that mystery block in TROP03.TFS when I shift the blocks in that.
I guess all problems are now solved, which makes this whole post quite pointless  ::)
Now I will focus on understanding these MAP files.

Romsstar

Quote from: Ze0N on June 28, 2012, 12:34:40 AM
I've found several anomalies while comparing the TFS files to what is displayed in game. It makes me think that the TFS files aren't even used by the game, which is ridiculous because they take up most of the disc space. I'm sure there must be a reason for everything.

I'll try to explain the strange things I've noticed...

Firstly, for the map MAYO10.TFS, I open it in my map editor and this is the exported image, which is fine:
http://i.imgur.com/lLkX1.png
The TFS file doesn't contain enough blocks to fill the whole image so we are left with some large empty areas. In the game, we don't see these:
http://i.imgur.com/1PkHx.png
http://i.imgur.com/jPBDI.png
As you can see, the area is filled in with a similar colour to the water, but... the right corner in the last image only slightly cuts into the waves. On the exported image, the missing block cuts into the waves much more.

Secondly, for the map TROP03.TFS, the exported image is:
http://i.imgur.com/BGFo4.png
It is also missing some blocks, and we can see that one of these is missing in game on this screenshot (bottom right corner):
http://i.imgur.com/lzF9m.png
But strangely enough, another one of the missing blocks has actually been filled with an image in game (top right corner):
http://i.imgur.com/0Cqvm.png

Finally, I tried to modify one of the TFS files to see if the changes would appear in game. I modified MAYO01.TFS to move the first block onto a new row at the bottom, and to colour in some pixels at the top of that block. This is how it looked after I modified it:
http://i.imgur.com/bKZFA.png
But in game, it seems like nothing has changed:
http://i.imgur.com/8hz9G.png
:huh:
EDIT: I coloured in more pixels and I could see the changed pixels in game now (it was cut off by the camera before). But the block is still in it's usual place and not where I moved it to. I think the position of blocks might be loaded by the MAP file and ignored in the TFS file maybe? The MAP files might also contain some collision data, camera bounds data and animation data (like the flashing direction screens). I will investigate.
New Modified MAYO01.TFS: http://i.imgur.com/rFUJ1.png
In Game: http://i.imgur.com/OMpyi.png
EDIT2: I decided to remove the first block from the TFS file and place it right at the end of the file. This was to see if the block positions in the TFS files are ignored and the MAP files (I guess) have a position for each block. I was right.
What it should look like: http://i.imgur.com/TbHGE.jpg
What it looks like in game: http://i.imgur.com/6tMoW.png & http://i.imgur.com/8DspK.png
Also in the 2nd image, notice how there is a toilet image overlayed on top of the map. This explains why we can walk behind the leaves. I guess this toilet image is also inside the MAP file and placed on top of everything. Maybe the missing block (which appears in game) from TROP03.TFS is also stored in the TROP03.MAP file.

So in summary:
MAYO10 is somehow filling in a missing section of the map with blue (but the missing section looks different in game).
TROP03 is getting a 128x128 block from somewhere other than the TFS file.
Modifying the file MAYO01.TFS seems to make no difference in game. I checked that it correctly modified the IMG file.
EDIT: Modifying the file MAYO01.TFS to move a block position seems to make no difference in game.
EDIT2: The map size and location of each block in the TFS file is ignored by the game engine. These values must be stored in the MAP files.
Any ideas?

I will keep working on the map editor and I'm going to try and figure out the MAP files.

Since DrMefist0 the author of the TFS Viewer is part of Lab313 (just like me) and we kinda worked out the format together I can tell you that the MAP files are NOT needed by the game for building the Map.
Although by some tests I made it does seem that the game itself is reading the Tile Data from the MAP Files.
TFS Files  contain:

- The Header
- The Size of the MAP
- How the Map is read

MAP Files contain:

- The Size of the Map (but this is for positioning the Enemies I guess)
- TIM Files (which are applied as a layer on top of the TFS Files for some locations (mainly involves objects and such)
- Enemy Data (scattered all around the place, or at least to me)
- Item Data (for the particular Map)

As for the TFS reader, it is open source, if you have problems figuring something out the source code is avaible here as well.

Ze0N

#57
Yes, I understand.

TFS files contain: [map size], [palettes], [blocks/tiles] and [location of each block/tile].
But... the game engine ignores the [map size] and [location of each block/tile] in the TFS files. I know this after all of the testing I did. Try changing all of the map sizes in the TFS files to 0 and nothing will change I think. I will confirm this shortly. EDIT: I just replaced the [map size] and every [location of each block/tile] in a TFS file to 0's. The map displayed exactly the same. So, these values in the TFS files are ignored by the game.

I haven't looked at the MAP files yet, but like you say, they contain the [map size] so the game engine must use this for the camera bounds at least.
MAP files will also contain [location of each block/tile] I'm pretty certain.
I'm glad to hear they contain TIM files as that explains the image overlays.
They should contain a bunch of other things too. You said enemy data and item data. I'm going to guess collision data too.

I understand the whole TFS format. I read a post you made about it in another topic and worked everything else out from there. I didn't know there was a source for TFSViewer. It might have made it easier  :laugh:

Romsstar

Quote from: Ze0N on June 28, 2012, 02:56:40 AM
Yes, I understand.

TFS files contain: [map size], [palettes], [blocks/tiles] and [location of each block/tile].
But... the game engine ignores the [map size] and [location of each block/tile] in the TFS files. I know this after all of the testing I did. Try changing all of the map sizes in the TFS files to 0 and nothing will change I think. I will confirm this shortly. EDIT: I just replaced the [map size] and every [location of each block/tile] in a TFS file to 0's. The map displayed exactly the same. So, these values in the TFS files are ignored by the game.

I haven't looked at the MAP files yet, but like you say, they contain the [map size] so the game engine must use this for the camera bounds at least.
MAP files will also contain [location of each block/tile] I'm pretty certain.
I'm glad to hear they contain TIM files as that explains the image overlays.
They should contain a bunch of other things too. You said enemy data and item data. I'm going to guess collision data too.

I understand the whole TFS format. I read a post you made about it in another topic and worked everything else out from there. I didn't know there was a source for TFSViewer. It might have made it easier  :laugh:

I think colission data as well yes. It would be by the way cool to be able to fool around with it as well.
Also not every TFS File uses the same reading algorithm, we encountered some which gave us trouble.

For example check out in MAP/MAP3/TUNN07.TFS
Also in MAP/MAp2/TUNN06.TFS which is very small and uses also some different kind of algorithm.

You might just want to check them out.

For the TIM Overlay thing I'm talking about in MAP/MAP8/TRAI00.TFS is good for checking.
The tree, the rock, the waterfall, all is loaded from the corresponding MAP File.

Yeah I also encountered that screwing with the values in the MAP Files will eventually screw up the arrangement of the tiles.
So I think it IS indeed read from there.

My explanation would be that it is needen in order to position the enemies and items at the place they want.

I also found that changing the enemy to a different one will make them vanish completely. Apparently there seems to be some loading technique which I haven't figured out yet.

By the way wrote you a message )

raymondkone

Hi, I am new to hacking and would like to ask if the following ideas are feasible:
1. Setting a upper ability limit specific to each digimon (By modifying data in MMD?)
2. Modify the battle bonus system. Let the player to choose which ability to increase.
3. Change the life system so that player can use battle bonus to extend digimon's life.

How should I start?