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


Quote from: CUE on April 05, 2012, 04:56:22 AM
Thanks, but I'm not the author, is Romsstar :)
oh I'm Sorry Romsstar

April 05, 2012, 11:03:48 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

I spent 25 minutes just to translate this part without using the Dumper / Inserter since I use gives problem when inserting
because I looked at the table and wrote down the numbers on paper and used to modify the ISO

you were a great help with 16 bits table ,but send you Inserter tools as MP?

Thanks guys :thumbsup:


I'm working with a combination of Cartographer+Atlas. So I don't have an own parser/inserter.
Maybe I will write at the weekend one, but the thing is I never really needed it since I wasn't planning on translating anything.


Nothing new on the Dumper/Inserter but I'm currently working on a Starter+Enemy Stats Editor.
Here is a first screen

Eventually I guess I will make it possible to edit the stats of all digimon, or when it comes to enemy digimon maybe also drops and such.
We'll see what I can come up with.


Congratulation romsstar It will maybe edit all digimons :thumbsup: or make enemy drop more frequently?


Quote from: gledson999 on April 08, 2012, 02:57:29 PM
Congratulation romsstar It will maybe edit all digimons :thumbsup: or make enemy drop more frequently?

Yeah I want to do that but the problem is that I haven't found the values for things like that, or for instance the rate for techniques learning and similar.
This is actually a problem I have right now.

Finding out Item, Enemy Drops and Technique Learning.

I can manipulate the value for learning a technique through training but not from the battle, it seems to be a completely different algorithm.

I would need someone who can dig into code like that, I don't have the skill...


Hiya Romsstar, I've been tracking you from your GameFAQs "I'll code it" thread for this game.  This is one of the first games I ever played, but I never finished it, and in a bout of nostalgia (and the realization that I could probably get through it a lot easier via emulation), I picked it up over the weekend.  Got pretty far, but I'm currently facing off against the MP Consumption glitch in the NTSC version—if you don't know, it's a rarely-seen, game-freezing glitch that was fixed in the PAL version.  Whenever I encounter it in my current game, the post-battle text gets to "MP Consumption Bonu", consistently cutting off at the u, at which point the game freezes—the character animations keep playing in the background, but no more text is displayed, and controller input doesn't change anything.

After reading how the Giromon Jukebox bug was caused by text overflow, and considering that trying to put the s of 'Bonus' would definitely put it past the margin of that window, I was wondering if this was perhaps a similar problem.  I've dug into the disc data using Windhex and the table file you've provided in this thread, and I eventually found all the post-battle/post-training text (in ASCII) in the BTL_REL.BIN file.  There doesn't seem to be anything problematic in the text itself, barring that there are seemingly no newline characters or pointers in a string of text that would clearly be too long for a single line.  But that might not be a problem if the code that references the text accounts for it.

So, I had two questions for you (or anyone else, if they can answer):  What program/utility did you use to find the source of the Giromon Jukebox bug?  And would it be possible for you to post the PAL, UK version of those lines from the BTL_REL file here?  I'd like to compare them to see if there's anything overtly different between the two, and unfortunately can't get access to a PAL version of the game right now.

Thanks.  =)

EDIT:  Added in the screenshot and got the full (and correct ;>_> ) name of the file.  Also tried to dump both the relevant text and binary via WindHex, but got an access violation and a fatal error, respectively.  Gonna see what's up with that, but figured I should update my post with what I have.

EDIT #2:  WindHex didn't like my working directly on the files on the image, rather than extracting them first.  After doing that, though, seemed like another screenshot would be easier to understand.


Of course I'm aware of the MP consumption bonus. But I actually never encountered it, which is why I have no idea how it even looks like when it happens.
Which is why I never bothered.

The NTSC Version uses for its Techniques, Screen Names, Items and Sound standard (actually very screwed up) ASCII Code.

But the PAL Version (respectively UK, IT, GE etc) uses a shift-jis standard following a similar format as the table I provided but with some minor changes (ä,ö,ü etc)
If you want to dig into the PAL Version you can use the same table provided in the thread.

You find Techniques, Screen Names, Items and Sound in the SLES or for NTSC SLUS file.
Currently working on a script dumper inserter. The dumper needs some adjustment but getting close.

If you could provide a savestate or similar with the MP Consumption Bonus I guess I could take a look at that.


mp consumption bonus are regular in Factorial town only with filth tech digimon (but are Rare this bug) and after this the game will freeze :-[


I'm positive I can fix this if someone provides me a savestate where the bug occurs. I can't do any research if I don't encounter this problem.


@Romsstar:  I have one I've been using for testing myself that I can upload in a few hours if you want.  However, just to clarify, I was planning on fixing this myself; I was just trying to get info on the PAL version to see how it was different there, to see if I could apply that change to the NTSC version.  I wasn't asking you to fix it for me.  If you're offering, that's very nice of you; I just don't want you to think I was being presumptuous or demanding.  I know you've got other stuff you're working on.  =)

Incidentally, I did manage to get my hands on the PAL code, and it does seem like they added more breaks in the text.  Gonna do some code-changing experiments when I get home.

@gledson:  The trigger for the MP consumption bonus actually has nothing to do with location—in my testing, it's occurred in Factorial Town, Trash Mountain, Drill Tunnel, Native Forest, and Gear Savanna, on multiple screens of each, against multiple opponents in each.  Likewise it doesn't seem digimon-specific; I've had it occur for both Numemon and Andromon so far.  Based on the UK text in the PAL version, it occurs for digimon with a high Brains stat (which makes sense; my original Andromon had about 6k, and my Numemon at present has about 9k).  My testing also only saw it happen for longer battles, though that could mean any number of things.  The only other thing I've seen commonplace is that both digimon were only using one technique for the duration of the battle (as they only knew one that they could use), so it's possible that could also factor into it.

But I would guess the trigger for the feature and the trigger for the glitch aren't the same.  We'll see in a couple hours.

EDIT LATER THAT NIGHT:  Alright, well, so much for that.  Spent a few hours just trying to get PPFs to work correctly; I succeeded, but none of my subsequent edits have solved the glitch.  If I knew what the #R, #C1, and #C7 tokens were being used for, I might have a better chance of it, but I'm not even sure where to start with that.  Sleep might help; we'll see how I'm doing tomorrow.  In the meantime, here are the save states: - End of the battle, just before the victory music.  Should give some time in case the system does pre-display calculations. - Just before the Finish gauge fills up.  In my testing for this encounter, the MP Consumption message would only show up after the Finish gauge had filled up completely—ie, before then, if the enemy's HP was immediately 0, the bonus would not be received.  I don't think the gauge itself has anything to do with the bonus; it just seems a convenient measure for the amount of time spent in the battle. - Start of the battle, in case it would be useful.


First tests show that the problem is not the text. More likely they just didn't close the code somewhere so it isn't getting ended.
But I wil have more later this afternoon.
Just have to go to university now, had not much time for testing yet.
I was planning into digging the battle stuff anyways, as I want to find out how learning techniques in battles works.


Changing the Routine for the Textbox appearing to a NOP makes it still freeze. It is not about the Text after all but something that happens while the Text appears that makes it freeze. The Bits are counted down normally that is not an issue as well. Interesting. I'll have to keep digging.

April 15, 2012, 06:33:13 AM - (Auto Merged - Double Posts are not allowed before 7 days.)

The #C Tokens correspond to color codes:

C0: Transparent // Actually makes the text invisible
C1: White
C2: Blue
C3: Red
C4: Pink
C5: Green
C6: Lightblue
C7: Yellow
C8: Black
C9: Grey
// Orange Token not present or I didn't find it

As you can see there is some similarity to

I don't exactly know what the #R is about maybe it just belongs to the code and could be something like a Read Command to read the color bytes from an adress.

#R#C(X) simply gives the text its color. At least this is how much we know at this point.


- Rerouting the Jump to another Routine (Like learning a new technique) // The problem is where the fuck is the jump executed. The code always looks like a fuzzy piece of shit with its own commands which technically aren't even supposed to exist in MIPS.


I originally thought the #R and #W might be control or formatting tokens, ie some non-ASCII carriage return or a general return-from-subroutine.  It does seem like each #R is paired with a #C though—but on the other hand, there are standalone #Cs.

The #W token seems to be 'wait for input'.  It's at the end of every string that would stand on its own (e.g. 'Distance' and 'Attack' don't have it, because they are followed in-game by "Digimon now listens to command!", which does).  I tried adding in a few #W tokens in a similar vein to how they're in the PAL version (first line ends with R, second line ends with W), and after tapping X a few times, a '1' showed up on the second row of the Textbox.  Game was still frozen afterward, though.  I wonder if whatever code is running puts the game into a waiting-for-input mode, without actually listening for said input.


This morning I was playing around with the routine for getting meat.

In the PAL Version it is at adress

15BB75 - blez r16,0x0015bb79 // Meat Routine. Branches to 15BB79 if Value at Register 16 is less than or equal to zero.

15BBD1= blez r24, 0x0016200D //If changing this routine to a nop it jumps back to the first routine. But this is a messy way to bypass this and would enable to get always meat but I'm after something else.
Still missing 3 routines for the meat which I'm trying to allocate.
Of course the routines are also not complete here, just notes for me.

Was just a small test with Routines. I'm not that good in MIPS yet to do what I want, but there is progress :)

EDIT: For some reason after the MP Consumption Bonus they made a break at 73003. I wonder if that is causing the freezing. Not sure yet since setting it to a NOP did not much but this again could be ONE of the reasons and that there are multiple ones.


Hy Romsstar  :)
In primis congratulations for the great bugfix patch  :thumbsup:
I have a question, do you have also fixed the tyrannomon bug (The bug is in Italian version, but i don't knows if is in other versions :P) ?


Quote from: Carmax91 on April 20, 2012, 09:19:08 AM
Hy Romsstar  :)
In primis congratulations for the great bugfix patch  :thumbsup:
I have a question, do you have also fixed the tyrannomon bug (The bug is in Italian version, but i don't knows if is in other versions :P) ?

I haven't been around for a while so reading this now.
What kind of bug is it? If you can explain where it occurs and under which circumstances I guess I could try to fix it.
Or best would be to provide a savestate.

Will take an approach to the MP Consumption Bonus bug again soon.


Ok Romsstar, but in these days i haven't much time to play :(
Btw the bug is when you beat tyrannomon, in NTSC version after beat tyrannomonafter you can proceed normally in the next area. In the PAL version after you beat him, he will not move and you can't proceed to go on next area and each time you try the match repeat again...

Hope I was clear :P


All right I will check it out-

@Moderators: Don't consider this as spam please I will update that post.

@gledson999: For now I have only a dumper not an Inserter yet. I'm working on some different stuff so I will get to that, but later.

Got a new routine:

15BF53 -  stores the price for the meat of palmon (500 Bit). Now we can change that as well. Will work that into the Editor later.

15C0CD - blez r0, 0x163CD1 // This Routine determines whever you already have gotten your meat for today or you didn't. Changing this to a NOP will make you get meat from Tanemon infinitely. (Because it makes it think you still didn't get it). Palmon seems to use a different Routine. Have to check that.

Not a biggy but hey for a 10 minute work in the morning it's ok I guess. Next I will try to find out how the game determines whether you get 3 or 5 pieces of meat.


sorry to slow you down romsstar ...but the dumper and inseter for digimon world you have to send me? I'm trying to translate it into Portuguese..but gives the error to insert the text extracted HELP :'(


hey romsstar im new to romhacking kinda self learning by reading lots of guides and faqs. and this game is what attracted me to learn all these stuff. right now im still at the table making stage and i have alot of questions. is it okay if i email/msn you?

p.s. i have a basic knowledge of programming