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

Things done:

- Table File
- Ripped Font of all Files (Credits to CUE from http://romxhack.esforos.com and Klarth for ripping/helping)
- Advanced Texture Hacking with replacing nearly all TIM Files the game uses (New!)
- Fixed the famous PAL Bug
- TFS Viewer (Thanks to Dr.Mefisto for this baby)
- Fixed Giromon Jukebox Bug (NTSC Only)
- Pointer Tables


To do



1) The 3D models. They are stored in a format called MMD. While I can get TMD files out of it with TMDRIP (so it must use TMD) the result files are not "boned" I think this issue was discussed in the thread with  ConsoleTool the parts of the model are all out of the place.
Rigging takes forever and would be an impossible task for the whole game (Although I got some models finished already but this is not the way.
A way to view and save the models in OBJ or a similar format CORRECT (means alligned or build together whatever)

- lowlife had a go at parse but somehow no progress, this format seems to be complicated..

2) Still need to find how to figure out the RNG from this game, also I can't find the Status Boxes yet.

Work in  Progress:


Video
Pal Bug Fix

Screenshots





Anyone with PSX Hacking knowledge and interested in this project is free to join me.

Ryusui

"Damn so much you can't imagine" is not a design document. List your goals and maybe you'll find some help with them.

You don't technically need to know ASM to work out file formats, but it can help to have an understanding of the PSX hardware and how it handles 3D if working out the model format is one of your goals.

Also: PAL bug? That sounds like a rather impressive accomplishment. Can you elaborate for us who don't follow the Digimon scene?
In the event of a firestorm, the salad bar will remain open.

Romsstar

#2
Yeah sure.

Starting with the goals:

For instance one of my main goals would be to be able to read the Maps or at least be able to rip them.
While the VRAM does store them it's a tedious work and you not always get the whole map which is why I would like to find a way to open those files.
There is a folder named MAPS and it contans
always a *.MAP and a *.TFS.
I scanned with PSIcture through both and the map does contain some tim files which are rather useless though.
Also MAP is always like half of the TFS which is why I'm sure the TFS must have the info.

Today I tried to check through the TFS with Nana in 4B Raw Mode and so I got some results which are although pretty messed up (you can only see that the map is in there but like in coloured dots) -> will add screenshot later.

Goal 1 therefore:

Be able to rip the Map Data completely ( My dream would be a map viewer/editor)


Goal 2:
The 3D models. They are stored in a format called MMD. While I can get TMD files out of it with TMDRIP (so it must use TMD) the result files are not "boned" I think this issue was discussed in the thread with  ConsoleTool the parts of the model are all out of the place.

Rigging takes forever and would be an impossible task for the whole game (Although I got some models finished already but this is not the way.

A way to view and save the models in OBJ or a similar format CORRECT (means alligned or build together whatever)


Goal 3:
This seems a bit easier. I want to rip and replace the font at will. FEIDIAN might be helpful but can'T get it to work ( I got a thread in beginners for that)

Goal 4:
This one is actually of course the biggest but at time being least important too.
Although I figured out the table file and I can edit the ingame dialogue, I stil haven't figured out the pointers, nor can add new dialogue.
A way to make the reserved space longer and also adding new dialogues would be very awesome.

(This is where ASM comes in )


For the Pal Bug:


In the European Version of the Game there was an evil bug which prevented you from completing the game. If you check the video when you would talk to this agumon originally NOTHING would happen.
Although you can see it fixed I merely just inserted some code and replaced files by try and error having no clue what I was doing.
It works but is rather glitchy and buggy naturally to the way I was doing it. Actually you could use it for just skipping through the passage and play your original disk but writing a 100% working patch would be nice.

Gee that was loads of texts but I hope someone reads that.

February 14, 2011, 07:19:14 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Thanks to Klarth I was at least able to rip the font



Replacing the PAL Font now seems possible.

Next task: Figuring out the NTSC-J and NTSC-U Font.

viperzerof-2

hiro has a better model in digimon world card battle. if possible I would swap the two

gadesx

#4
the pal spanish version have crash with agumon, these hacking project
can fix em?

ADD: I have a friend with all the fonts hacked of every version,
all pal, usa, and japanese.
the info its here: http://romxhack.esforos.com/bug-digimon-world-1-t11-15
with the fonts too directly. http://www.megaupload.com/?d=AMHTXBE5

Romsstar

WOW this is a BIG help. Thank you so much.
And yes  this is what this hacking project is for.

Romsstar

Bumping this topic because I made some progress with this project (Although it maybe has not much interest after all...) and bolded the updated things.
After all Hacking is not only for the fans but also for yourself if you really like the game I think.

Updates:

- Advanced Texture Hacking with replacing nearly all TIM Files the game uses (New!)
- Fixed the famous PAL Bug (Final Version with Patcher is out!)
- Basic Map Viewer (I can view the Maps but they are Tiled and I don't know how to make the Viewer read the TileMaps - ISSUE)
- Figured out some OP-Codes and find out how the game stores its Locations (pretty useful)
- Found the Debug Room

Romsstar

Found lots of useful adresses and also some routines.

But at the moment I'm stuck and this is how far my skills go...

I'm not able to find out how the Random Generator of the Game works.

It is responsible for things like learning a technique from an oponnent,
random item spawns and random oponnent spawns.

I don't even know what exactly to look for.

I had the idea to set a breakpoint on the adress of the techniques so when I would learn a new technique it would break and show me where the RNG is located.
But nothing.

I would be helpful for a hint what I'm supposed to look for and how.

gledson999

romsstar con you make a table file of digimon world american SLUS? I not found the plot of the game text for use on windhex

I found text of tips, side quest, places,etc ... but not of plot game script



I will make a portuguese translation of this game

thanks

Romsstar

The Font is located in the SLUS File you can make a table out of the offsets very easy by yourself.
Learning by doing buddy.

The game script is located in the DG.SCN file and MAPHEAD.SCN.
Use the table you gathered from the SLUS.

The pointers for the Dialogue and also Items, Places, and generally pointers the game uses mostly come after the dialogue.

Colour Codes the game uses you could use for your table.

0101=<WHITE>
0102=<BLUE>
0103=<RED>
0104=<PINK>
0105=<GREEN>
0106=<LIGHTBLUE>
0107=<YELLOW>
0108=<BLACK>
0109=<GREY>
010A=<ORANGE>

Of course the codes most likely are applied in other situations as well but if you want to color a certain block of text you could put one of these codes in the dialogue line and see it for yourself.

Also it would be a lot easier to work from one of the PAL Versions for a Portuguese Translation, as for example from the Spanish one.

gledson999

Quote from: Romsstar on March 25, 2012, 12:47:21 PM
The Font is located in the SLUS File you can make a table out of the offsets very easy by yourself.
Learning by doing buddy.

The game script is located in the DG.SCN file and MAPHEAD.SCN.
Use the table you gathered from the SLUS.

The pointers for the Dialogue and also Items, Places, and generally pointers the game uses mostly come after the dialogue.

Colour Codes the game uses you could use for your table.

0101=<WHITE>
0102=<BLUE>
0103=<RED>
0104=<PINK>
0105=<GREEN>
0106=<LIGHTBLUE>
0107=<YELLOW>
0108=<BLACK>
0109=<GREY>
010A=<ORANGE>

Of course the codes most likely are applied in other situations as well but if you want to color a certain block of text you could put one of these codes in the dialogue line and see it for yourself.

Also it would be a lot easier to work from one of the PAL Versions for a Portuguese Translation, as for example from the Spanish one.

rommstar Thank you for your help, so I finishes the translation you will be credited for the help.

what utility that you used to extract and insert the fonts of the Digimon World SLUS? .. I want to enter letters (ç, áéíóúâãõ, etc.) if possible send me your table or what offset from A-Z, a-z 0-9

I was testing the textures here for curiosity ;) and edited the Greymon, but will not be included in the translation just for testing I did it, but this sample of my work

Romsstar

#11
Not that I do really want to be credited for anything but if you do, please have the mercy and write my nickname correctly.xD

As for the Multiclut standard textures, there is not much to it editing :D

Keep in mind that if you want to translate the Status Menue of the Digimon that it uses a mix of TIM files and you have to edit them as well.

The complete Table File for SLUS_010.32 without any additional codes I use.
Offset: A0684 - A0880

1A00=<START>
0000=<END>
0D00=<NEWLINE>
0101=<WHITE>
0102=<BLUE>
0103=<RED>
0104=<PINK>
0105=<GREEN>
0106=<LIGHTBLUE>
0107=<YELLOW>
0108=<BLACK>
0109=<GREY>
010A=<ORANGE>
8260=A
8261=B
8262=C
8263=D
8264=E
8265=F
8266=G
8267=H
8268=I
8269=J
826A=K
826B=L
826C=M
826D=N
826E=O
826F=P
8270=Q
8271=R
8272=S
8273=T
8274=U
8275=V
8276=W
8277=X
8278=Y
8279=Z
8281=a
8282=b
8283=c
8284=d
8285=e
8286=f
8287=g
8288=h
8289=i
828A=j
828B=k
828C=l
828D=m
828E=n
828F=o
8290=p
8291=q
8292=r
8293=s
8294=t
8295=u
8296=v
8297=w
8298=x
8299=y
829A=z
824F=0
8250=1
8251=2
8252=3
8253=4
8254=5
8255=6
8256=7
8257=8
8258=9
8140=
8142=.
8143=,
8145=·
8146=:
8147=;
8148=?
8149=!
815F=\
8175='
8176="
8177=:
8178=;
817B=+
817C=-
8181==
819B=<CIRCLE>
81A0=<SQUARE>
81A2=<CROSS>
817E=<TRIANGLE>



gledson999

ok his nickname correct writing may believe ;)

never worked with tables 16bits, was repairing the table to be able to insert scripts dumped but the error persists
see dumped OK:


inserter error: (the same text dumped but not edited)


I'll send you the dumper and inserter for you to check and repair
http://www.4shared.com/rar/FXKQq4SW/Digimon_world_dumper.html

or http://www.mediafire.com/?fc3la6e6c1hr6hb
I'll be very grateful for your help

the table repaired and erro persist
1A00=<START>
0000=<END>
0D00=<NEWLINE>
0101=<WHITE>
0102=<BLUE>
0103=<RED>
0104=<PINK>
0105=<GREEN>
0106=<LIGHTBLUE>
0107=<YELLOW>
0108=<BLACK>
0109=<GREY>
010A=<ORANGE>
8260=A
8261=B
8262=C
8263=D
8264=E
8265=F
8266=G
8267=H
8268=I
8269=J
826A=K
826B=L
826C=M
826D=N
826E=O
826F=P
8270=Q
8271=R
8272=S
8273=T
8274=U
8275=V
8276=W
8277=X
8278=Y
8279=Z
8281=a
8282=b
8283=c
8284=d
8285=e
8286=f
8287=g
8288=h
8289=i
828A=j
828B=k
828C=l
828D=m
828E=n
828F=o
8290=p
8291=q
8292=r
8293=s
8294=t
8295=u
8296=v
8297=w
8298=x
8299=y
829A=z
824F=0
8250=1
8251=2
8252=3
8253=4
8254=5
8255=6
8256=7
8257=8
8258=9
8140=
8142=.
8143=.
8145=·
8146=:
8147=.
8148=?
8149=!
815F=.
8175=.
8176=.
8177=:
8178=.
817B=+
817C=-
8181==
819B=<CIRCLE>
81A0=<SQUARE>
81A2=<CROSS>
817E=TRIANGLE>
00=.
01=.
02=.
03=.
04=.
05=.
06=.
07=.
08=.
09=.
0A=.
0B=.
0C=.
0D=.
0E=.
0F=.
10=.
11=.
12=.
13=.
14=.
15=.
16=.
17=.
18=.
19=.
1A=.
1B=.
1C=.
1D=.
1E=.
1F=.
20=.
21=.
22=.
23=.
24=.
25=.
26=.
27=.
28=.
29=.
2A=.
2B=.
2C=.
2D=.
2E=.
2F=.
30=.
31=.
32=.
33=.
34=.
35=.
36=.
37=.
38=.
39=.
3A=.
3B=.
3C=.
3D=.
3E=.
3F=.
40=.
41=.
42=.
43=.
44=.
45=.
46=.
47=.
48=.
49=.
4A=.
4B=.
4C=.
4D=.
4E=.
4F=.
50=.
51=.
52=.
53=.
54=.
55=.
56=.
57=.
58=.
59=.
5A=.
5B=.
5C=.
5D=.
5E=.
5F=.
60=.
61=.
62=.
63=.
64=.
65=.
66=.
67=.
68=.
69=.
6A=.
6B=.
6C=.
6D=.
6E=.
6F=.
70=.
71=.
72=.
73=.
74=.
75=.
76=.
77=.
78=.
79=.
7A=.
7B=.
7C=.
7D=.
7E=.
7F=.
80=.
81=.
82=.
83=.
84=.
85=.
86=.
87=.
88=.
89=.
8A=.
8B=.
8C=.
8D=.
8E=.
8F=.
90=.
91=.
92=.
93=.
94=.
95=.
96=.
97=.
98=.
99=.
9A=.
9B=.
9C=.
9D=.
9E=.
9F=.
A0=.
A1=.
A2=.
A3=.
A4=.
A5=.
A6=.
A7=.
A8=.
A9=.
AA=.
AB=.
AC=.
AD=.
AE=.
AF=.
B0=.
B1=.
B2=.
B3=.
B4=.
B5=.
B6=.
B7=.
B8=.
B9=.
BA=.
BB=.
BC=.
BD=.
BE=.
BF=.
C0=.
C1=.
C2=.
C3=.
C4=.
C5=.
C6=.
C7=.
C8=.
C9=.
CA=.
CB=.
CC=.
CD=.
CE=.
CF=.
D0=.
D1=.
D2=.
D3=.
D4=.
D5=.
D6=.
D7=.
D8=.
D9=.
DA=.
DB=.
DC=.
DD=.
DE=.
DF=.
E0=.
E1=.
E2=.
E3=.
E4=.
E5=.
E6=.
E7=.
E8=.
E9=.
EA=.
EB=.
EC=.
ED=.
EE=.
EF=.
F0=.
F1=.
F2=.
F3=.
F4=.
F5=.
F6=.
F7=.
F8=.
F9=.
FA=.
FB=.
FC=.
FD=.
FE=.
FF=.

mziab

That's probably because you have the dot assigned to several values in your table, so the insertor gets confused as to which one to use. Try removing all but the first instance from the table, so that there's only one left, and the problem should resolve itself.

Romsstar

Yeah why did you put several dot entries in anyways? I don't really see the point to it.
I will check the dumper/inserter later


Romsstar

I used my table like this and I get no error and a "inserted succesful" message.
By the way did you write the dumper and inserter?
Could I have a look at the source code? You can also send it as a a PM.
1A00=<START>
0000=<END>
0D00=<NEWLINE>
0101=<WHITE>
0102=<BLUE>
0103=<RED>
0104=<PINK>
0105=<GREEN>
0106=<LIGHTBLUE>
0107=<YELLOW>
0108=<BLACK>
0109=<GREY>
010A=<ORANGE>
8260=A
8261=B
8262=C
8263=D
8264=E
8265=F
8266=G
8267=H
8268=I
8269=J
826A=K
826B=L
826C=M
826D=N
826E=O
826F=P
8270=Q
8271=R
8272=S
8273=T
8274=U
8275=V
8276=W
8277=X
8278=Y
8279=Z
8281=a
8282=b
8283=c
8284=d
8285=e
8286=f
8287=g
8288=h
8289=i
828A=j
828B=k
828C=l
828D=m
828E=n
828F=o
8290=p
8291=q
8292=r
8293=s
8294=t
8295=u
8296=v
8297=w
8298=x
8299=y
829A=z
824F=0
8250=1
8251=2
8252=3
8253=4
8254=5
8255=6
8256=7
8257=8
8258=9
8140=
8143=.
8145=·
8146=:
8148=?
8149=!
817B=+
817C=-
8181==
819B=<CIRCLE>
81A0=<SQUARE>
81A2=<CROSS>
817E=TRIANGLE>

CUE

@gledson999: Digimon World uses codes based in SJIS (2 bytes/character). You can't use 1-byte codes.

gledson999

#18
Quote from: Romsstar on April 02, 2012, 05:39:40 AM
I used my table like this and I get no error and a "inserted succesful" message.
By the way did you write the dumper and inserter?
Could I have a look at the source code? You can also send it as a a PM.


I worked this dumper to extract text from FFX and my source codes was deleted, along with Megaupload (done online backup to format my PC and my chance on the same day that was taken down Megaupload)  :'(

April 02, 2012, 09:39:04 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

Quote from: CUE on April 02, 2012, 08:04:40 AM
@gledson999: Digimon World uses codes based in SJIS (2 bytes/character). You can't use 1-byte codes.
OK thanks CUE, you jukebox Bug fix are awesome

April 02, 2012, 11:14:35 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

@romsstar is how you send me your dumper and inserter via the MP? :)

CUE

Quote from: gledson999OK thanks CUE, you jukebox Bug fix are awesome
Thanks, but I'm not the author, is Romsstar :)