Hi-Res Patches for Fallout1&2 & the BIS Mapper

Discussion in 'Fallout General Modding' started by Mash, May 14, 2008.

  1. killap

    killap Bear Dude Moderator Modder

    May 16, 2005
    Awesome update Mash. The ability to change resolution from within the game is an impressive addition! The interface bar is also good looking. With your permission (which I assume is still there since I had asked you this before) I will be including this in the latest version of my RP.

    The only gripe I have (like a few other have already expressed) is that the resolution button is below the exit button. Other than that, I am thoroughly impressed!
     
  2. UnidentifiedFlyingTard

    UnidentifiedFlyingTard Vault Fossil

    Mar 12, 2009
    Damn, I never really noticed that until now, it's really going to bug the hell out of me.
     
  3. Babax

    Babax It Wandered In From the Wastes

    117
    Sep 19, 2006
    Mash, thank you. I wish I could do something similar, but all I can code is soft that doesn`t even work... Damn...

    It`s a big luck, that Fallout community have such talanted people like you, killap, Continuum and others... Maybe even you guys, are community itself, and guys like me are here because you your work.

    Anyway, best of luck, new version of Hi-Res patch have found its place on my HD forever.
     
  4. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    Absolutely Killap, permission always granted. Looking forward to the next RP release.

    As for the resolution button, I'm working on it. Expect another release within a day or 2.

    Thanks Babax, you made my day. :)
     
  5. UnidentifiedFlyingTard

    UnidentifiedFlyingTard Vault Fossil

    Mar 12, 2009
    You mean until the next version right? :lol:
     
  6. Alray

    Alray First time out of the vault

    50
    May 10, 2007
    Maybe I can help with this. I already worked with buttons in main menu. You can look at this stuff (This is for sfall):

    Code:
    static const DWORD func_text_y_old=0x004D58DC;
    static void _declspec(naked) func_text_main_menu_y() {
    	_asm {
    		call func_text_y_old;
    		mov esi,0x0;
    		mov edi,26; // 26 - y offset
    		retn;
    	}
    }
    static const DWORD func_buttons_y_old=0x004e0d37;
    static void _declspec(naked) func_buttons_main_menu_y() {
    	_asm {
    		call func_buttons_y_old;
    		mov esi,0x0;
    		mov ebp,0x19;
    		retn;
    	}
    }
    
    
    int buttons_number_main_menu=GetPrivateProfileInt("TWILIGHT WORLD", "buttons_number_main_menu", -1, ini);
    	if(buttons_number_main_menu!=-1) {
    		if(*((DWORD*)0x4818BB) != 0xB88C7C06) return false;
    		SafeWrite8(0x4818BB, buttons_number_main_menu); // number of buttons in main menu
    		SafeWrite8(0x48193F, buttons_number_main_menu); // number of text strings in main menu		
    	}
    
    	int text_main_menu=GetPrivateProfileInt("TWILIGHT WORLD", "text_main_menu", -1, ini);
    	if(text_main_menu!=-1) {		
    		SafeWrite32(0x4818FA, 526); // 526 - x offset
    		SafeWrite32(0x004818C4, ((DWORD)&func_text_main_menu_y) - 0x004818C8);
    		SafeWrite32(0x004818C8, 0x90909090);
    	}
    
    	int events_main_menu=GetPrivateProfileInt("TWILIGHT WORLD", "events_main_menu", -1, ini);
    	if(events_main_menu!=-1) {		
    		SafeWrite8(0x519510, 0x6E); 
    		SafeWrite8(0x519514, 0x6C); 
    		SafeWrite8(0x519518, 0x6F); 
    		SafeWrite8(0x51951c, 0x63); 
    		SafeWrite8(0x519520, 0x65); 
    		
    		SafeWrite8(0x519528, 0x01); 
    		SafeWrite8(0x51952c, 0x02); 
    		SafeWrite8(0x519530, 0x09); 
    		SafeWrite8(0x519534, 0x05); 
    		SafeWrite8(0x519538, 0x07); 
    
    		SafeWrite8(0x481b5F, 0x03);
    	}
    
    	int buttons_main_menu=GetPrivateProfileInt("TWILIGHT WORLD", "buttons_main_menu", -1, ini);
    	if(buttons_main_menu!=-1) {		
    		SafeWrite32(0x48187C, 428); 
    		SafeWrite32(0x00481840, ((DWORD)&func_buttons_main_menu_y) - 0x00481844);		
    		SafeWrite32(0x00481846, 0x90909090);		
    	}
    
    Loop where main menu buttons are create looks like:

    Code:
    _main_menu_create 
    L00481650
    ...
    do {
                ecx = 0x1a; // size of button (x)
                ebx = ebp;
                eax = M005194f0;
                ebx = ebx - edi;
                edx = 0x1e; // x offset
                ebx = ebx + 0x13;
                eax = L004D8260(0x1a, -1, -1, 0x457, *(esi + 0x519510), M005194fc, M00519500, 0, 0x20);
                *(esi + 0x614840) = eax;
                if(*(esi + 0x614840) == -1) {
                    goto L00481893;
                }
                edx = M005194fc;
                L004D8828();
                ebp = ebp + 0x2a;
                edi = edi + 1;
                esi = esi + 4;
            } while(edi < 6); 
    
    You can place small check in this loop to move exit-button down.
     
  7. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    Thanks for sharing your code Alray. Unfortunately I'd already uploaded a fix before I read your post(The new patch will be available once admin approve it).
    What's "TWILIGHT WORLD" by the way, is that the name of a mod your working on?
     
  8. Alray

    Alray First time out of the vault

    50
    May 10, 2007
    I hope TW will be a Total Conversion of Fallout 2. Or perhaps just small mod but with new storyline :)
     
  9. Mr.Wolna

    Mr.Wolna Vault Senior Citizen

    Nov 15, 2007
    thats amesome, i think when more mdoders will work hand on hand we will create something really big and amzing.
     
  10. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    The new version of my fallout2 patch is up 2.0a. You can now set the "Screen Set" button to any position in the main-menu task list. By default I've put it just below the "Options" button. Links are in the first post or my sig.


    Good luck, hope to play it someday.:)
    Just one concern, the code you posted earlier will probably conflict with what I've done with the "Screen Set" button. Will you be adding stuff to the main-menu in TW?
     
  11. Alray

    Alray First time out of the vault

    50
    May 10, 2007
    I'll add animated main menu, so my TC will conflict with your patch :( But I think if I produce at least demo of my mod we'll agree with main menu code :)
     
  12. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    I'll eagerly await your demo then. :)
     
  13. killap

    killap Bear Dude Moderator Modder

    May 16, 2005
    Is it something on my end or are save games made using the res patcher no longer openable by FALCHE2?
     
  14. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    It seems the resolution has an effect on the save files. The save.dat is noticeably larger in size the greater the resolution. I had a play around and if you reduce the resolution to 1024x768 or below and re-save, Falche2 seems to works as it should. I'll have a closer look at this though.
     
  15. Mr.Wolna

    Mr.Wolna Vault Senior Citizen

    Nov 15, 2007

    H)Ey i alwasy wanted to make something like this, i hope you wwill share the code with us ;)
     
  16. JaW

    JaW It Wandered In From the Wastes

    185
    Oct 1, 2006
    Mash,

    thanks for this resolution patch and option to set resolution in game. People started to play Fallout 2 again because of this patch. Great job! :clap:

    I have just one question. Why the resolution scroll buttons works contrariwise? Shouldn't be top arrow button change scroll to the higher resolution and bottom one to lower resolution?
     
  17. UnidentifiedFlyingTard

    UnidentifiedFlyingTard Vault Fossil

    Mar 12, 2009
    Yeah that one always puts me off.

    thanks for moving that button Mash :clap:
     
  18. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    More on FALCHE2:
    I checked some "SAVE.DAT" files against the file format info found on the wiki at http://falloutmods.wikia.com/wiki/SAVE.DAT_File_Format
    Higher resolution seems to affect a "SAVE.DAT" in 2 areas.
    1st is the "Function 23 - Party" section, which is said on the wiki to relate to your party members, but this doesn't seem to be the case. This is where the file size increase is occuring.
    And 2nd the "Function 12 - Party AI" section, which is said to contain records about party members from "AI.TXT". At the bottom of each record there are 3x4bytes listed as unknown in the wiki, and its the size of the values in these unknown areas that are causing the problem with Falche2.
    Anyway I don't think the res patch is causing any problems. Just that the Falche2 program doesn't handle the changes made to those unknown areas very well.

    Call me crazy :crazy: but I think the buttons are right the way they are. Other menu's in the game work the same eg. load screen, inventory etc. The UP button moves toward the top of the list and the DOWN button toward the bottom.
     
  19. JaW

    JaW It Wandered In From the Wastes

    185
    Oct 1, 2006
    Mash, this wasn't my point. I just thing it is logical to have the higher resolution on the top of the list so if I press the top arrow button it will move to higher resolutions and back, if you know what I mean. Sorry for bothering you :lol:
     
  20. Mash

    Mash Vault Engineer Modder

    369
    May 3, 2008
    OK now I understand.:) That should be doable, but I probably wont be releasing another version until I have something new to add or if a bug is found.