Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - gledson999

Pages: [1] 2 3
1
Ah, maybe you can't change "Format" opcodes for the PSX version of the game...
What happens if you delete that opcode? Careful, you won't be able to add it back, I think.
If delete this Opcode, Only this two option are available

2
Replace "60000" by "60000L" in the code:
Code: [Select]
set Chocobo_HotColdPoints -= 60000LThat is because numbers higher than 32636 should be flagged as "long" numbers, otherwise they are stored as a 2-byte signed integer type.

Also, for the selectability problem, update the lines "EnableDialogChoices". You must both include the added choice to the available choice list (change "511" into "1023", or tick the next box in the script editor), and tell the game that the "default" choice has index 9 instead of 8 (change "set VAR_LocUInt8_2 = 8" into "set VAR_LocUInt8_2 = 9").
Thank you, I corrected the item price issue here, as I also managed to put the value "set VAR_LocUInt8_2 = 9"
Immediately the "Cancel" option becomes available, but when I select another option, I can't go back to cancel again.

I don't know if it's because of this option here:
Also, when editing the text, there's an opcode that setups the choices ("FORMAT:Multichoice" in the PSX version): double-click to edit its parameter and do the same kind of changes there (number of choices => 10, "Cancel" choice => 9).
I couldn't open the menu using the two clicks to edit the parameters, correct me if i'm wrong or i'm trying to click the wrong box

3
@Tirlititi I'm wanting to add one more item to the moogle exchange point menu in the Chocobo Forest, I did the following by adding one more line to "Function Moogle_Male_64"

Code: [Select]
Function Moogle_Male_64
    switch 3 ( Chocobo_CurrentField ) from 1 {
    case +0:
        SetTextVariable( 2, Chocobo_ForestHighScore )
        SetTextVariable( 3, Chocobo_ForestGamePlayed )
        break
    case +1:
        SetTextVariable( 2, Chocobo_LagoonHighScore )
        SetTextVariable( 3, Chocobo_LagoonGamePlayed )
        break
    case +2:
        SetTextVariable( 2, Chocobo_GardenHighScore )
        SetTextVariable( 3, Chocobo_GardenGamePlayed )
    }
    SetTextVariable( 5, ( Chocobo_ForestGamePlayed + Chocobo_LagoonGamePlayed ) + Chocobo_GardenGamePlayed )
    SetTextVariable( 4, Chocobo_HotColdPoints )
    if ( Chocobo_Lv99 == 0 ) {
        WindowSync( 7, 128, 240 )
    } else {
        WindowSync( 7, 128, 243 )
    }
    if ( GetDialogChoice == 0 ) {
        set VAR_LocUInt16_9 = 0
        set VAR_LocUInt8_2 = 8
        EnableDialogChoices( 511, VAR_LocUInt8_2 )
        WindowAsync( 6, 4, 246 )
        while ( VAR_LocUInt16_9 < 1 ) {
            set VAR_LocInt8_29 = 1
            EnableDialogChoices( 511, VAR_LocUInt8_2 )
            SetTextVariable( 4, Chocobo_HotColdPoints )
            set VAR_LocInt8_30 = 0
            while ( VAR_LocInt8_30 < 1 ) {
                if ( IsButton(655360L) ) {
                    set VAR_LocInt8_30 = 1
                }
                Wait( 1 )
            }
            switch 9 ( GetDialogChoice ) from 0 {
            case +0:
                if ( ( Chocobo_HotColdPoints >= 10000 ) && ( GetItemCount(175) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 10000
                    AddItem( 175, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 0
                break
            case +1:
                if ( ( Chocobo_HotColdPoints >= 8500 ) && ( GetItemCount(209) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 8500
                    AddItem( 209, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 1
                break
            case +2:
                if ( ( Chocobo_HotColdPoints >= 3500 ) && ( GetItemCount(87) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 3500
                    AddItem( 87, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 2
                break
            case +3:
                if ( ( Chocobo_HotColdPoints >= 1800 ) && ( GetCardAmount < 100 ) ) {
                    set Chocobo_HotColdPoints -= 1800
                    AddItem( 599, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 3
                break
            case +4:
                if ( ( Chocobo_HotColdPoints >= 450 ) && ( GetItemCount(238) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 450
                    AddItem( 238, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 4
                break
            case +5:
                if ( ( Chocobo_HotColdPoints >= 250 ) && ( GetItemCount(254) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 250
                    AddItem( 254, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 5
                break
            case +6:
                if ( ( Chocobo_HotColdPoints >= 150 ) && ( GetItemCount(249) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 150
                    AddItem( 249, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 6
                break
            case +7:
                if ( ( Chocobo_HotColdPoints >= 10 ) && ( GetItemCount(251) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 10
                    AddItem( 251, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 7
                break
            default:
                set VAR_LocUInt16_9 = 99
                set VAR_LocInt8_29 = 99
                CloseWindow( 7 )
                break
            }
            switch 2 ( VAR_LocInt8_29 ) from 0 {
            case +0:
                Wait( 4 )
                RunSoundCode3( 53248, 108, 0, -128, 125 )
                Wait( 4 )
                break
            case +1:
                Wait( 4 )
                RunSoundCode3( 53248, 102, 0, -128, 125 )
                Wait( 4 )
                break
            }
        }
        RunSoundCode3( 53248, 103, 0, -128, 125 )
    }
    return

To:
Code: [Select]
Function Moogle_Male_64
    switch 3 ( Chocobo_CurrentField ) from 1 {
    case +0:
        SetTextVariable( 2, Chocobo_ForestHighScore )
        SetTextVariable( 3, Chocobo_ForestGamePlayed )
        break
    case +1:
        SetTextVariable( 2, Chocobo_LagoonHighScore )
        SetTextVariable( 3, Chocobo_LagoonGamePlayed )
        break
    case +2:
        SetTextVariable( 2, Chocobo_GardenHighScore )
        SetTextVariable( 3, Chocobo_GardenGamePlayed )
    }
    SetTextVariable( 5, ( Chocobo_ForestGamePlayed + Chocobo_LagoonGamePlayed ) + Chocobo_GardenGamePlayed )
    SetTextVariable( 4, Chocobo_HotColdPoints )
    if ( Chocobo_Lv99 == 0 ) {
        WindowSync( 7, 128, 240 )
    } else {
        WindowSync( 7, 128, 243 )
    }
    if ( GetDialogChoice == 0 ) {
        set VAR_LocUInt16_9 = 0
        set VAR_LocUInt8_2 = 8
        EnableDialogChoices( 511, VAR_LocUInt8_2 )
        WindowAsync( 6, 4, 246 )
        while ( VAR_LocUInt16_9 < 1 ) {
            set VAR_LocInt8_29 = 1
            EnableDialogChoices( 511, VAR_LocUInt8_2 )
            SetTextVariable( 4, Chocobo_HotColdPoints )
            set VAR_LocInt8_30 = 0
            while ( VAR_LocInt8_30 < 1 ) {
                if ( IsButton(655360L) ) {
                    set VAR_LocInt8_30 = 1
                }
                Wait( 1 )
            }
            switch 9 ( GetDialogChoice ) from 0 {
            case +0:
                if ( ( Chocobo_HotColdPoints >= 60000 ) && ( GetItemCount(0) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 60000
                    AddItem( 0, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 0
                break
            case +1:
                if ( ( Chocobo_HotColdPoints >= 10000 ) && ( GetItemCount(175) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 10000
                    AddItem( 175, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 1
                break
            case +2:
                if ( ( Chocobo_HotColdPoints >= 8500 ) && ( GetItemCount(209) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 8500
                    AddItem( 209, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 2
                break
            case +3:
                if ( ( Chocobo_HotColdPoints >= 3500 ) && ( GetItemCount(87) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 3500
                    AddItem( 87, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 3
                break
            case +4:
                if ( ( Chocobo_HotColdPoints >= 1800 ) && ( GetCardAmount < 100 ) ) {
                    set Chocobo_HotColdPoints -= 1800
                    AddItem( 599, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 4
                break
            case +5:
                if ( ( Chocobo_HotColdPoints >= 450 ) && ( GetItemCount(238) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 450
                    AddItem( 238, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 5
                break
            case +6:
                if ( ( Chocobo_HotColdPoints >= 250 ) && ( GetItemCount(254) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 250
                    AddItem( 254, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 6
                break
            case +7:
                if ( ( Chocobo_HotColdPoints >= 150 ) && ( GetItemCount(249) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 150
                    AddItem( 249, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 7
                break
            case +8:
                if ( ( Chocobo_HotColdPoints >= 10 ) && ( GetItemCount(251) < 99 ) ) {
                    set Chocobo_HotColdPoints -= 10
                    AddItem( 251, 1 )
                    set VAR_LocInt8_29 = 0
                }
                set VAR_LocUInt8_2 = 8
                break
            default:
                set VAR_LocUInt16_9 = 99
                set VAR_LocInt8_29 = 99
                CloseWindow( 8 )
                break
            }
            switch 2 ( VAR_LocInt8_29 ) from 0 {
            case +0:
                Wait( 4 )
                RunSoundCode3( 53248, 108, 0, -128, 125 )
                Wait( 4 )
                break
            case +1:
                Wait( 4 )
                RunSoundCode3( 53248, 102, 0, -128, 125 )
                Wait( 4 )
                break
            }
        }
        RunSoundCode3( 53248, 103, 0, -128, 125 )
    }
    return

I also edited the texts in Environment >> Texts to add the extra option text, but when I went to test it in the game, I couldn't make the menu select the extra option, and the "cancel" option is unselectable, could you help me?

Example:

In the original version, when the menu is open, It's begin in "Cancel" text


In the Modded, It's begin in "Gysahl Green" text and the "Cancel" option is unavailable to chose


EDIT: The funny thing about this is that in addition to the problem that I am not able to make the "Cancel" option selectable, the other problem is that when I choose to buy the Hammer, instead of decreasing -60000 Gil, it simply increases +5536 Gil

4
No, Gledson999. Hades Workshop cannot increase the file size of the PSX version, so using custom backgrounds can't be done and will most likely never be possible for the PSX version.
I understood, I wanted to translate some city names in my translation, which are those names when we enter somewhere for the first time in some city/location, like Chocobo's Forest, Gizamaluke Grottos... and insert back using the same palette and the same size.




5
Is there any version of Hades Workshop that the Background editor works on the psx version of the game?

6
What feature are for PSX version?

7
Thank you very much, buddy  :D ;)

8
I can do that but in 2 weeks only, once I return home.
Thanks for you reply, i'll so i'll wait, Merry Christmas

9
@gledson999: The VWF is not in a standard format (you can see its format here).
I don't have all my FF9 datas available for some time, but the file is a 0x0D chunk that is approximately at position 0x3cb048 (it depends on the disk and the language; 0x3cb048 is the disk 3 of the french version). For informations on chunks and cluster datas, you can check Qhimm's wiki.

Unfortunately couldn't find it, could you tell me the exact location on offset of FF9.IMG file?
It would help me a lot if you did it for me, thanks.

10
Hello Tirlititi, Do you have the address of VWF font of Final Fantasy IX PSX version?

11
So? Have you tried doing that?
But it can't be done for the PSX version. It's a modification of the game's engine, so it's for PC.

I understood, so the PSX version is impossible  :-( anyway thanks for reply and thanks for you impressive tool

12
Update to v0.41c:
- Added script file batch importing: you can now write script functions with your favorite text editor and import it back when you're done,
- Fixed bugs with text and UI text batch importation; also, the text IDs now start from 0 instead of 1 in the exported batches (so they match with the text ID inside scripts),
- Added more unused/dummied datas (for enemies mainly) that can be recycled when modifying the game's source code; also added enemy attack targetting informations (they are mostly unused, except for deciding if Cover triggers if I'm not mistaken),
- Listed more script functions and general variables in the script editor,
- Fixed a bug with Qu's Marsh's dialogs (it was actually caused by a "mobile" version of the dialogs; I think it's unused),
- In the Randomizer, the Prison Cages' "Absorb" spell is not randomized anymore,
- Fixed another bug with spell animation sequencing.

I am retiring from FF9 modding (presumably definitively). I don't think that I'll update this tool any further. The code is on Github though and I'll still answer questions, so here you go.

All I can tell you with this is, thanks for what you did for Final Fantasy IX!!!

About the menu's UI size, you can try to edit the C# source code of the menu and use something like that:
Code: [Select]

Could you see this issue of Menu's UI size? I don't know anything about programming. But you told this months ago

Code: [Select]
this.SubMenuPanel.transform.localScale = new Vector3(1.2f, 1.0f, 1.0f);


This would go in the method "MainMenuUI::Awake" (at the beginning, that's fine). I am not sure if it will work though, as UI modding is not something I know a lot about (and some informations are stored in GameObject and Transform files in the archives level1 and level2). Try to play with the figures here if you see that it has an effect.

13
I'm not quite sure I understand your question- like how does the PSX hardware reads the TIM? Or the exact size of the source rectangle from TIM?
My question is how tim file is loaded, i made some test and found the script called menututo.ovl, this file load tim and other stuff on information term, but i not sure how this ovl work, i not found any reverse information on wiki for this *.ovl file.

I pretend add some features in my current mod

http://forums.qhimm.com/index.php?topic=19137.0

14
Anyone know how the tim image is loaded in the tutorial menu in Final Fantasy VIII

The only information that i have:
mngrp.bin contain the mag10.tim at offset 0x169800, this is a (Triple Triad tutorial image)


The mag10.tim load for this screen page


Anyone know how this tim is loaded?

15
Lots of good stuff here.
Question: why refinement in a magical lamp?

Magical Lamp, Girl Next Door, Solomon's Ring is item from PocketStation too, so nothing has been changed but added

16
Releases / [PSX] Final Fantasy VIII Improvement Hack v0.1
« on: 2019-07-31 05:42:01 »
Introduction

Hello, my name is Gledson999 and in my spare time I like to translate some games and do some Improvement hacks, this game is one of my favorites, when I was young I played this game a lot, but still some things frustrated me because I discovered a lot of unused things also I didn't have a PocketStation, so I decided to make a Improvement hack.

Features
  • Get Mog's Amulet and Enable MiniMog for MiniMog command after get Chocobo Card in Chocobo Forest from Esthar Region (No PocketStation needed ;D)
  • Chocobo learn Chocobocle after get Chocobo Card in Chocobo Forest from Esthar Region
  • You can get 1 Gisahl Green and 10 Friendship in Chocobo Forest from Esthar Region
  • MiniMog and Ribbon Term from tutorial unlocked after get Chocobo Card.
  • Unused Succession of Sorceress Power Term unlocked after talk with Edea and Cid in begining of disk 3
  • Unused Trabia Shop unlocked in Trabia Garden (talk with lazy bum on the ground)
  • Selphie can cast the unused Limits Percent and Catastrophe now
  • Forbid Mag-RF now has 1 more entry (Total 6 + 1 = 7 Entries)
  • Tool-RF now has 5 more entries (Total 32 + 5 = 37 Entries)
  • GFAbl Med-RF has 2 more entries (Total 42 + 2 = 44 Entries)
  • Newest Entries added in Ability Term from Information
  • Removed censorship of green blood on wall in Armory of Ultimecia Castle
  • Removed censorship of Gerogero's appearance (Fake President)

Tools Used
  • Deling Field editor by myst6re
  • Doomtrain kernel.bin editor by Alexfilth, JWP and Maki
Special Thanks
  • Albeoris for restore FF8 Wiki page
  • Sebanisu for some useful links
  • myst6re for Deling Editor
  • Alexfilth, JWP and Maki for DoomTrain
Download
Links
1 - Get Mog's Amulet and Enable MiniMog for MiniMog command after get Chocobo Card in Chocobo Forest from Esthar Region (No PocketStation needed ;D)
Spoiler: show


2 - Chocobo learn Chocobocle after get Chocobo Card in Chocobo Forest from Esthar Region
Spoiler: show


3 - You can get 1 Gisahl Green and 10 Friendship in Chocobo Forest from Esthar Region
Spoiler: show


4 - MiniMog and Ribbon Term from tutorial unlocked after get Chocobo Card.
Spoiler: show


5 - Unused Succession of Sorceress Power Term unlocked after talk with Edea and Cid in begining of disk 3
Spoiler: show


6 - Unused Trabia Shop unlocked in Trabia Garden (talk with lazy bum on the ground)
Spoiler: show


7 - Selphie can cast the unused Limits Percent and Catastrophe now
Spoiler: show


8 - Forbid Mag-RF now has 1 more entry (Total 6 + 1 = 7 Entries)
Spoiler: show
1 Shaman Stone refines into 10 Apocalypses.


9 - Tool-RF now has 5 more entries (Total 32 + 5 = 37 Entries)
Spoiler: show
10 Three Stars refines into 1 Magical Lamp.
10 Hero-Trial refines into 1 Solomon's Ring.
10 Holy War-Trial refines into 1 Girl Next Door.
10 Pet Nametag refines into 1 Chocobo's Tag.
100 Pet House refines into 1 Pet Nametag.



10 - GFAbl Med-RF has 2 more entries (Total 42 + 2 = 44 Entries)
Spoiler: show
1 Rosetta Stone refines into 1 Mog's Amulet.
1 Mog's Amulet refines into 1 Ribbon.



11 - Newest Entries added in Ability Term from Information
Spoiler: show


12 - Removed censorship of green blood on wall in Armory of Ultimecia Castle
Spoiler: show

                       Before                       

                         After                       


13 - Removed censorship of Gerogero's appearance (Fake President)
Spoiler: show

                       Before                       

                         After                       

17
The GF ABL Med-RF has 42 entries, my goal is try add 2 more entries do make a ribbon and mog's Amulet in my mod.

18
Hi everyone, it's possible add more refine item into GF ABL RF? I know that m00*.bin and m00*.msg its a file, but how i do to add more refine item?

19
init.out I think is like the new game state.

I'm unsure I'm still scratching the surface. I wrote a function to search the archive files for strings or byte array to help find some stuff. Though it's slow. My first search resulted in a tim file. Which is a texture so that isn't it.

Maybe it's in the EXE somewhere. Like how the card game is in there.

Interesting, about the EXE I can't confirm because I don't know about MIPS

20
I know where the strings are. https://drive.google.com/drive/folders/1iW_QjSCH643KxNXtMJ3yKDY7Q3CSbLtS?usp=sharing
There is also values for it in the save files. You might be able to edit a save to enable it in game. https://github.com/myst6re/hyne/blob/master/SaveData.h line#378
Doomtrain wiki has some info about them in the kernel.bin under https://github.com/alexfilth/doomtrain/wiki/Non-junctionable-GF-attacks.

Thanks buddy. Another question.

I was editing the save using Hyne save editor and discovered that file inside the save are init.out and are identically, so I can make a mod, but the chocobo World section is another file after init.out from save file.

Init.out inside save file


And Here is located the World map and Chocobo World and this are another file, so what file is this? I analyzed scene.out and kernel.bin but without success.

21
I'll move data to your post.


Thanks, it will be helpfull buddy.

about mngrp.bin at offset 0x1BD808 this text are buggy when I using this tool Translator Tool - MnGrpEditor (v1.6) from http://forums.qhimm.com/index.php?topic=15967.0

What another way to edit this?

Note: This text are from Information tutorial

22
Someone or something rolled back the wiki to february 2019. So everything I edited or changed is gone.

You can see the code on https://github.com/MaKiPL/OpenVIII

Maybe if I get motivated to redo everything I'll put it on a wiki on github where I have control over it.

All the work is gone? It's sad to know that.

I was trying to discover how to enable minimog and ChocoBuckle in FF8 but withowt success, do you know any method or opcode that do this?

I made a thread here about my project
http://forums.qhimm.com/index.php?topic=18873.msg264217#msg264217

23
http://wiki.ffrtt.ru/index.php/FF8/Menu_mngrp_bin added a bunch of info that I found on this file to the wiki. Still a lot of holes. Where I'm not sure anyone had discovered what is there.

I named the strings I'm having trouble reading "Complex Strings" mostly because the distance between the entries is 0-3 bytes so when I jump to the next offset i might be inside a string instead of the 6 bytes in front of the next entry.

I think the offsets might be in another section but I haven't figured it out yet.

I might take a break from this and integrate the ones I can read as it'll cover most of what I need to do.

I probably also should update the wiki with what is in the string data instead of just putting "strings here". Not that big of a deal. :P

The link about mngrphd.bin, mngrp.bin, tkmnmes files, and mngrp complex string was removed from wiki yesterday, can anyone update?

The following link off are:

http://wiki.ffrtt.ru/index.php/FF8/Menu_tkmnmes
http://wiki.ffrtt.ru/index.php/FF8/Menu_mngrphd_bin
http://wiki.ffrtt.ru/index.php/FF8/Menu_mngrp_bin
http://wiki.ffrtt.ru/index.php/FF8/Menu_mngrp_complex_strings

24
I'm modding Final fanyasy VIII on PSX/PC/Steam version adding missing unused Term in the game like "Succession of sorceress power" and Minimog and Ribbon Term (Only acquired with PocketStation)

So I want how to enable MiniMog to item Mog's Amulet and change Chocobo Fire to ChocoBuckle from item.

I used the Opcode "MENUTIPS" to enable Succession of sorceress power" and Minimog and Ribbon

What Opcode to activate flag to enable MiniMog and Change Chocobo Tech?

Done:

  • Term Succession of sorceress power added to Tutorial
  • Term MiniMog added to Tutorial
  • Term Ribbon added to Tutorial

To Do:

  • ChocoBoy sell FriendShip (Moomba summon item) only in Esthar Chocobo Forest
  • ChocoBuckle tech for Chocobo
  • Enable MiniMog
[/list]

25
FF8 Tools / Re: [PSX/PC] DelingScript
« on: 2019-05-12 20:39:03 »
@Shard can you upload again? The link is off

Pages: [1] 2 3