Complete out of battle PSI menu and improve in-batttle PSI menu
This commit is contained in:
parent
0f7438300f
commit
80d1d654cf
|
@ -17,6 +17,7 @@ $input_c_files =
|
|||
"src/c/goods.c",
|
||||
"src/c/fileselect.c",
|
||||
"src/c/status.c",
|
||||
"src/c/battle.c",
|
||||
"src/c/psi.c"
|
||||
|
||||
$base_c_address = 0x83755B8;
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
#include "window.h"
|
||||
#include "battle.h"
|
||||
#include "number-selector.h"
|
||||
#include "locs.h"
|
||||
|
||||
void printTargetOfAttack(short a, short target)
|
||||
{
|
||||
WINDOW *window = getWindow(3);
|
||||
m2_setupwindow(window, 0x9, 0x3, 0x14, 0x2);
|
||||
initWindow_buffer(window, NULL, 0);
|
||||
printstr_buffer(window, &m12_battle_commands_str11, 0, 0, false);
|
||||
if(target != -1)
|
||||
{
|
||||
printstr_hlight_buffer(window, &m12_battle_commands_str14, 8, 0, 0);
|
||||
short *pointer = (short*)(0x20248E0 + 0x83E);
|
||||
byte *pointer2 = (byte*)(0x20248E0);
|
||||
short value = *pointer;
|
||||
m2_setupBattleName((a * value) + target + 1);
|
||||
byte* str = ((*((byte**)0x3005220)) + 0x4C0);
|
||||
printstr_buffer(window, str, 2, 0, false);
|
||||
if(a != 0)
|
||||
pointer2 += 0x2E;
|
||||
else
|
||||
pointer2 += 0x26;
|
||||
byte val = *(pointer2 + target);
|
||||
unsigned short ailmentTile = ailmentTileSetup((byte*)(0x2020CCF + (val * 0x94)), 0);
|
||||
if(ailmentTile >= 1)
|
||||
map_tile(ailmentTile, window->window_x + 0x26, window->window_y);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(a == 0) //a is the row here
|
||||
printstr_buffer(window, &m12_battle_commands_str12, 2, 0, false);
|
||||
else
|
||||
printstr_buffer(window, &m12_battle_commands_str13, 2, 0, false);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
#ifndef HEADER_BATTLE_INCLUDED
|
||||
#define HEADER_BATTLE_INCLUDED
|
||||
|
||||
#include "vwf.h"
|
||||
|
||||
void printTargetOfAttack(short a, short target);
|
||||
|
||||
extern byte m12_battle_commands_str11;
|
||||
extern byte m12_battle_commands_str12;
|
||||
extern byte m12_battle_commands_str13;
|
||||
extern byte m12_battle_commands_str14;
|
||||
|
||||
#endif
|
|
@ -15,6 +15,8 @@ int __attribute__((naked)) m2_sub_a334c(int value) {}
|
|||
int __attribute__((naked)) m2_sub_a3384(int value) {}
|
||||
void __attribute__((naked)) m2_sub_d3c50() {}
|
||||
void __attribute__((naked)) m2_sub_d6844() {}
|
||||
int __attribute__((naked)) m2_setupwindow(WINDOW* window, short window_x, short window_y, short window_width, short window_height) {}
|
||||
int __attribute__((naked)) m2_clearwindowtiles(WINDOW* window) {}
|
||||
int __attribute__((naked)) customcodes_parse_generic(int code, char* parserAddress, WINDOW* window, int* dest) {}
|
||||
void __attribute__((naked)) m2_printstr(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight) {}
|
||||
void __attribute__((naked)) m2_setupBattleName(short value) {}
|
11
src/c/psi.c
11
src/c/psi.c
|
@ -94,7 +94,7 @@ void psiTargetWindow_buffer(byte target)
|
|||
PSIPrintInfo *printInfo = &(psi_print_info[target - 1]);
|
||||
byte *string_group1 = (byte*)(0x8B204E4);
|
||||
byte extract = (printInfo->PSIID);
|
||||
byte *baseStrPointer = (byte*)(&psitext);
|
||||
byte *baseStrPointer = (byte*)(&psitext);
|
||||
byte value = 0;
|
||||
byte value2 = 0;
|
||||
byte *str = 0;
|
||||
|
@ -124,7 +124,7 @@ void psiTargetWindow_buffer(byte target)
|
|||
void psiPrint_buffer(byte value, WINDOW* window, bool printPSILine, PSIPrintInfo *printInfo)
|
||||
{
|
||||
byte *str = 0;
|
||||
byte *baseStrPointer = (byte*)(&psitext);
|
||||
byte *baseStrPointer = (byte*)(&psitext);
|
||||
byte (*possibleTargets)[3][4] = (byte(*)[3][4])cursorValues;
|
||||
|
||||
if(printPSILine)
|
||||
|
@ -479,7 +479,7 @@ int PSITargetInput(WINDOW* window)
|
|||
else
|
||||
window->hold = false;
|
||||
|
||||
if(state.b || state.select)
|
||||
if((state.b || state.select) && (beforeVWF))
|
||||
{
|
||||
m2_soundeffect(0x12E);
|
||||
window->counter = 0;
|
||||
|
@ -488,10 +488,9 @@ int PSITargetInput(WINDOW* window)
|
|||
|
||||
window->cursor_x_delta = target;
|
||||
|
||||
if(state.a || state.l)
|
||||
if((state.a || state.l) && (beforeVWF))
|
||||
{
|
||||
if(beforeVWF)
|
||||
m2_soundeffect(0x12D);
|
||||
m2_soundeffect(0x12D);
|
||||
window->counter = 0xFFFF;
|
||||
return target;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ int statusNumbersPrint(WINDOW* window, bool doNotPrint)
|
|||
print_string_in_buffer(str, 0x2C, (0xF) << 3, (int*)(OVERWORLD_BUFFER - 0x2000));
|
||||
}
|
||||
print_blankstr_buffer(1, 0x3, 0xA, (int*)(OVERWORLD_BUFFER - 0x2000));
|
||||
unsigned short symbolTile = ailmentTileSetup(character_data, 0);
|
||||
unsigned short symbolTile = ailmentTileSetup(&(character_data->ailment), 0);
|
||||
if(symbolTile == 0)
|
||||
{
|
||||
printStatusSymbolArrangement(0x1FF, window);
|
||||
|
|
39
src/c/vwf.c
39
src/c/vwf.c
|
@ -1278,8 +1278,13 @@ void printstr_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short
|
|||
|
||||
unsigned short printstr_hlight_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight)
|
||||
{
|
||||
unsigned short printX = (x + window->window_x) << 3;
|
||||
unsigned short printY = (y + window->window_y) << 3;
|
||||
return printstr_hlight_pixels_buffer(window, str, x << 3, y << 3, highlight);
|
||||
}
|
||||
|
||||
unsigned short printstr_hlight_pixels_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight)
|
||||
{
|
||||
unsigned short printX = x + ((window->window_x) << 3);
|
||||
unsigned short printY = y + ((window->window_y) << 3);
|
||||
unsigned short tmpPaletteMsk = (*palette_mask);
|
||||
unsigned short palette_mask_highlight = tmpPaletteMsk;
|
||||
if(highlight)
|
||||
|
@ -1462,40 +1467,40 @@ int setNumber_getLength(int value, byte *str, int maxLength)
|
|||
return pos;
|
||||
}
|
||||
|
||||
unsigned short ailmentTileSetup(PC *character, unsigned short defaultVal)
|
||||
unsigned short ailmentTileSetup(byte *ailmentBase, unsigned short defaultVal)
|
||||
{
|
||||
int value = defaultVal;
|
||||
byte flagValue = 0;
|
||||
if(character->ailment == CONSCIOUS)
|
||||
if((*ailmentBase) == CONSCIOUS)
|
||||
{
|
||||
if(character->ailment2 != CONSCIOUS)
|
||||
if((*(ailmentBase + 1)) != CONSCIOUS)
|
||||
{
|
||||
flagValue = character->ailment2;
|
||||
flagValue = (*(ailmentBase + 1));
|
||||
value = 1;
|
||||
}
|
||||
else if(character->ailment3 != CONSCIOUS)
|
||||
else if((*(ailmentBase + 2)) != CONSCIOUS)
|
||||
{
|
||||
flagValue = character->ailment3;
|
||||
flagValue = (*(ailmentBase + 2));
|
||||
value = 2;
|
||||
}
|
||||
else if(character->strange)
|
||||
else if((*(ailmentBase + 3)))
|
||||
{
|
||||
flagValue = character->strange;
|
||||
flagValue = (*(ailmentBase + 3));
|
||||
value = 3;
|
||||
}
|
||||
else if(character->cant_concentrate)
|
||||
else if((*(ailmentBase + 4)))
|
||||
{
|
||||
flagValue = character->cant_concentrate;
|
||||
flagValue = (*(ailmentBase + 4));
|
||||
value = 4;
|
||||
}
|
||||
else if(character->homesick)
|
||||
else if((*(ailmentBase + 5)))
|
||||
{
|
||||
flagValue = character->homesick;
|
||||
flagValue = (*(ailmentBase + 5));
|
||||
value = 5;
|
||||
}
|
||||
else if(character->unknown2[0])
|
||||
else if((*(ailmentBase + 6)))
|
||||
{
|
||||
flagValue = character->unknown2[0];
|
||||
flagValue = (*(ailmentBase + 6));
|
||||
value = 6;
|
||||
}
|
||||
else
|
||||
|
@ -1504,7 +1509,7 @@ unsigned short ailmentTileSetup(PC *character, unsigned short defaultVal)
|
|||
else
|
||||
{
|
||||
value = 0;
|
||||
flagValue = character->ailment;
|
||||
flagValue = (*(ailmentBase));
|
||||
}
|
||||
unsigned short *returnValues = (unsigned short*)0x8B1F2E4;
|
||||
return (*(returnValues + (value * 7) + flagValue - 1));
|
||||
|
|
|
@ -97,13 +97,14 @@ void setStuffWindow_Graphics();
|
|||
void clearWindowTiles_buffer(WINDOW* window);
|
||||
int initWindow_buffer(WINDOW* window, byte* text_start, unsigned short delay_between_prints);
|
||||
void print_blankstr_buffer(int x, int y, int width, int *dest);
|
||||
unsigned short ailmentTileSetup(PC *character, unsigned short defaultVal);
|
||||
unsigned short ailmentTileSetup(byte *ailmentBase, unsigned short defaultVal);
|
||||
int setNumber_getLength(int value, byte *str, int maxLength);
|
||||
int print_string_in_buffer(byte *str, int x, int y, int *dest);
|
||||
void printCashWindow();
|
||||
WINDOW* getWindow(int index);
|
||||
void printstr_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight);
|
||||
unsigned short printstr_hlight_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight);
|
||||
unsigned short printstr_hlight_pixels_buffer(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight);
|
||||
|
||||
extern unsigned short m2_coord_table[];
|
||||
extern byte m2_ness_name[];
|
||||
|
@ -135,4 +136,6 @@ extern void m2_soundeffect(int index);
|
|||
extern void m2_printstr(WINDOW* window, byte* str, unsigned short x, unsigned short y, bool highlight);
|
||||
extern int customcodes_parse_generic(int code, char* parserAddress, WINDOW* window, int* dest);
|
||||
extern void m2_sub_d3c50();
|
||||
extern void m2_sub_d6844();
|
||||
extern void m2_sub_d6844();
|
||||
extern int m2_setupwindow(WINDOW* window, short window_x, short window_y, short window_width, short window_height);
|
||||
extern void m2_setupBattleName(short value);
|
|
@ -55,9 +55,11 @@ mov r3,6
|
|||
//---------------------------------------------------------
|
||||
|
||||
.org 0x80B7D9A :: bl b7d9a_main_window_manage_input
|
||||
.org 0x80B7DD2 :: bl printCashWindow
|
||||
//.org 0x80B8A36 :: bl initWindow_buffer //Money window
|
||||
//.org 0x80B8A3C :: bl print_window_with_buffer
|
||||
.org 0x80B8890 :: bl print_window_with_buffer :: bl b8894_printCashWindowAndStore //Main window + Cash Window out of Status menu
|
||||
.org 0x80B8664 :: bl print_window_with_buffer :: bl b8894_printCashWindowAndStore //Main window + Cash Window out of PSI menu
|
||||
.org 0x80B831A :: bl initWindow_buffer
|
||||
.org 0x80B8320 :: bl b8320_statusWindowTextStore
|
||||
|
||||
|
@ -78,13 +80,21 @@ mov r3,6
|
|||
// PSI battle window hacks
|
||||
//---------------------------------------------------------
|
||||
|
||||
.org 0x80E00C8 :: bl e02c6_print_target_store
|
||||
.org 0x80E02C6 :: bl e02c6_print_target_store
|
||||
.org 0x80E0762 :: bl initWindow_buffer
|
||||
.org 0x80E0776 :: bl print_window_with_buffer
|
||||
.org 0x80E07C2 :: bl clearWindowTiles_buffer
|
||||
.org 0x80E0892 :: bl initWindow_buffer
|
||||
.org 0x80E08A6 :: bl print_window_with_buffer
|
||||
.org 0x80E0990 :: bl initWindow_buffer
|
||||
.org 0x80E0A30 :: bl initWindow_buffer
|
||||
.org 0x80E0A54 :: bl print_window_with_buffer
|
||||
.org 0x80C24A2 :: bl printstr_hlight_buffer
|
||||
.org 0x80C24B4 :: bl printstr_hlight_buffer
|
||||
.org 0x80C24CC :: bl printstr_hlight_buffer
|
||||
.org 0x80C2500 :: bl printstr_hlight_buffer
|
||||
.org 0x80C2518 :: bl printstr_hlight_buffer
|
||||
|
||||
//---------------------------------------------------------
|
||||
// BAC18 hacks (status window)
|
||||
|
@ -113,7 +123,26 @@ mov r3,6
|
|||
.org 0x80B8C34 :: bl initWindow_buffer
|
||||
.org 0x80B8C42 :: bl baec6_psi_window_print_buffer
|
||||
.org 0x80B8C7E :: bl initWindow_buffer
|
||||
.org 0x80B8C8C :: bl baec6_psi_window_print_buffer
|
||||
.org 0x80B8C8C :: nop :: nop
|
||||
.org 0x80B8CA8 :: bl initWindow_buffer
|
||||
.org 0x80B8CAE :: bl print_window_with_buffer
|
||||
.org 0x80B8CEA :: bl baec6_psi_window_print_buffer
|
||||
.org 0x80B8D0C :: bl initWindow_buffer
|
||||
.org 0x80B8D16 :: bl initWindow_buffer
|
||||
.org 0x80B8D22 :: bl psiWindow_buffer
|
||||
.org 0x80B8E44 :: bl initWindow_buffer
|
||||
.org 0x80B8E62 :: bl baec6_psi_window_print_buffer
|
||||
.org 0x80B9222 :: bl initWindow_buffer
|
||||
.org 0x80B922E :: bl psiTargetWindow_buffer
|
||||
.org 0x80B916E :: bl initWindow_buffer
|
||||
.org 0x80B9174 :: bl print_window_with_buffer
|
||||
.org 0x80B9238 :: bl initWindow_buffer
|
||||
.org 0x80B9256 :: bl baec6_psi_window_print_buffer
|
||||
.org 0x80BA9FA :: bl initWindow_buffer
|
||||
.org 0x80BAA00 :: bl print_window_with_buffer
|
||||
.org 0x80BAB64 :: bl initWindow_buffer
|
||||
.org 0x80BABA6 :: bl printstr_hlight_buffer
|
||||
.org 0x80BA8AC :: bl ba8ac_load_targets_print
|
||||
|
||||
//---------------------------------------------------------
|
||||
// Class PSI window hacks
|
||||
|
@ -218,14 +247,14 @@ bl print_string
|
|||
.org 0x80C23AE :: lsr r6,r3,0xD // tiles-to-pixels
|
||||
.org 0x80C23CE :: bl c239c_print_psi :: nop :: nop :: nop
|
||||
.org 0x80C23DA :: add r4,17 // pixel width of "PSI "
|
||||
.org 0x80C23F0 :: bl print_string_hlight_pixels // print rockin'
|
||||
.org 0x80C23F0 :: bl printstr_hlight_pixels_buffer // print rockin'
|
||||
.org 0x80C2402 :: mov r0,3 :: lsl r0,r0,0x10 // pixel width of space
|
||||
.org 0x80C242E :: mov r0,0x14 // new PSI name entry length
|
||||
.org 0x80C2448
|
||||
bl print_string_hlight_pixels // print PSI name
|
||||
bl printstr_hlight_pixels_buffer // print PSI name
|
||||
mov r2,r1 // record X width
|
||||
add r2,3 // add a space
|
||||
.org 0x80C2468 :: bl print_string_hlight_pixels
|
||||
.org 0x80C2468 :: bl printstr_hlight_pixels_buffer
|
||||
|
||||
//---------------------------------------------------------
|
||||
// PSI target window hacks
|
||||
|
@ -274,7 +303,7 @@ mov r0,0x50
|
|||
|
||||
// Redraw main menu when entering PSI target window
|
||||
.org 0x80B8CF8 :: bl b8bbc_redraw_menu_13to2 // 1 to 2
|
||||
.org 0x80B920C :: bl b8bbc_redraw_menu_13to2 // 3 to 2
|
||||
.org 0x80B920C :: bl b8bbc_redraw_menu_13to2_store // 3 to 2
|
||||
|
||||
//---------------------------------------------------------
|
||||
// E06EC hacks (PSI window in battle)
|
||||
|
@ -1588,11 +1617,13 @@ moved_graphics_table:
|
|||
.definelabel m2_formatnumber ,0x80CA65C
|
||||
.definelabel m2_clearwindowtiles ,0x80CA834
|
||||
.definelabel m2_menuwindow ,0x80C1C98
|
||||
.definelabel m2_setupwindow ,0x80BE188
|
||||
.definelabel m2_resetwindow ,0x80BE490
|
||||
.definelabel m2_sub_d3c50 ,0x80D3C50
|
||||
.definelabel m2_hpwindow_up ,0x80D3F0C
|
||||
.definelabel m2_curhpwindow_down ,0x80D41D8
|
||||
.definelabel m2_sub_d6844 ,0x80D6844
|
||||
.definelabel m2_setupBattleName ,0x80DCD00
|
||||
.definelabel m2_div ,0x80F49D8
|
||||
.definelabel m2_remainder ,0x80F4A70
|
||||
.definelabel m2_items ,0x8B1D62C
|
||||
|
|
|
@ -384,6 +384,9 @@ push {lr}
|
|||
mov r9,r0
|
||||
ldr r3,[r5,#0]
|
||||
bl load_pixels_overworld
|
||||
push {r0-r3}
|
||||
swi #5
|
||||
pop {r0-r3}
|
||||
pop {pc}
|
||||
|
||||
//==============================================================================
|
||||
|
@ -423,6 +426,14 @@ bl store_pixels_overworld
|
|||
@@end:
|
||||
pop {pc}
|
||||
|
||||
//==============================================================================
|
||||
//Prints the attack target choice menu and stores the buffer
|
||||
e02c6_print_target_store:
|
||||
push {lr}
|
||||
bl printTargetOfAttack
|
||||
bl store_pixels_overworld
|
||||
pop {pc}
|
||||
|
||||
//==============================================================================
|
||||
// Clears the PSI window when switching classes
|
||||
// r5 = 0x3005230
|
||||
|
@ -485,18 +496,30 @@ mov r3,2
|
|||
mov r4,r0
|
||||
bl 0x80BE4C8
|
||||
mov r0,r4
|
||||
bl 0x80C8BE4
|
||||
bl print_window_with_buffer
|
||||
|
||||
swi #5
|
||||
|
||||
// Clobbered code (restore the window borders, etc.)
|
||||
mov r0,1
|
||||
bl 0x80BD7AC
|
||||
bl m2_swapwindowbuf
|
||||
|
||||
add sp,4
|
||||
pop {r1-r4,pc}
|
||||
.pool
|
||||
|
||||
//==============================================================================
|
||||
// Redraw main menu when exiting PSI window from using a PSI and stores the buffer
|
||||
b8bbc_redraw_menu_13to2_store:
|
||||
push {lr}
|
||||
bl b8bbc_redraw_menu_13to2
|
||||
mov r3,r9
|
||||
cmp r3,#0
|
||||
beq @@end //store only if we're exiting the menu
|
||||
bl store_pixels_overworld
|
||||
@@end:
|
||||
pop {pc}
|
||||
|
||||
//==============================================================================
|
||||
// Redraw main menu when entering PSI target window
|
||||
b8bbc_redraw_menu_13to2:
|
||||
|
@ -784,6 +807,15 @@ bl 0x80BD7F8 // restore tilemaps
|
|||
pop {pc}
|
||||
.pool
|
||||
|
||||
//==============================================================================
|
||||
//Calls the funcion which loads the targets in and then stores the buffer
|
||||
ba8ac_load_targets_print:
|
||||
push {lr}
|
||||
bl 0x80BAA80
|
||||
bl store_pixels_overworld
|
||||
pop {pc}
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// Print "PSI "
|
||||
c239c_print_psi:
|
||||
|
@ -793,7 +825,7 @@ mov r2,0
|
|||
str r2,[sp]
|
||||
mov r2,r4
|
||||
lsl r3,r3,3 // tiles-to-pixels
|
||||
bl print_string_hlight_pixels
|
||||
bl printstr_hlight_pixels_buffer
|
||||
add sp,4
|
||||
pop {pc}
|
||||
|
||||
|
@ -1749,7 +1781,7 @@ beq @@do_not_print
|
|||
mov r2,#1 //Goes on as usual and sets vwf_skip to true
|
||||
orr r2,r1
|
||||
strb r2,[r0,#3]
|
||||
bl m2_clearwindowtiles
|
||||
bl clearWindowTiles_buffer
|
||||
pop {pc}
|
||||
|
||||
@@do_not_print: //Doesn't print in the PSI window
|
||||
|
@ -1999,7 +2031,7 @@ bx r0 //Jump to the next useful piece of code
|
|||
b8d40_psi_going_inner_window:
|
||||
push {lr}
|
||||
bl PSITargetWindowInput
|
||||
bl store_pixels_overworld_psi_window
|
||||
bl store_pixels_overworld
|
||||
pop {pc}
|
||||
|
||||
//==============================================================================
|
||||
|
@ -2036,7 +2068,7 @@ pop {r2}
|
|||
@@store_buffer:
|
||||
cmp r0,#0
|
||||
bne @@continue
|
||||
bl store_pixels_overworld_psi_window
|
||||
bl store_pixels_overworld
|
||||
|
||||
@@continue:
|
||||
cmp r0,#0
|
||||
|
@ -2193,6 +2225,9 @@ beq @@end
|
|||
cmp r0,#0
|
||||
blt @@end
|
||||
bl load_pixels_overworld
|
||||
push {r0-r2}
|
||||
swi #5
|
||||
pop {r0-r2}
|
||||
|
||||
@@end:
|
||||
pop {pc}
|
||||
|
@ -2889,20 +2924,6 @@ str r0,[r1,#8]
|
|||
ldr r0,[r1,#8]
|
||||
pop {r0-r1,pc}
|
||||
|
||||
//==============================================================================
|
||||
//Loads the vram into the buffer, it's called each time there is only the main file_select window active (a good way to set the whole thing up)
|
||||
load_pixels_overworld_psi_window:
|
||||
push {r0-r1,lr}
|
||||
ldr r1,=#0x40000C8 //DMA transfer 2
|
||||
ldr r0,=#0x6002000 //Source
|
||||
str r0,[r1]
|
||||
ldr r0,=#overworld_buffer //Target
|
||||
str r0,[r1,#4]
|
||||
ldr r0,=#0x94000800 //Store 0x1800 bytes - When VBlank and in words of 32 bits
|
||||
str r0,[r1,#8]
|
||||
ldr r0,[r1,#8]
|
||||
pop {r0-r1,pc}
|
||||
|
||||
//==============================================================================
|
||||
//Stores the buffer into the vram. This avoids screen tearing.
|
||||
store_pixels_overworld_psi_window:
|
||||
|
|
|
@ -694,6 +694,7 @@ namespace ScriptTool
|
|||
{
|
||||
var str = hardcodedStrings[i];
|
||||
|
||||
offsetFile.WriteLine($".definelabel {name.Replace('-', '_')}_str{i},0x{referenceAddress | 0x8000000:X}");
|
||||
foreach (int ptr in str.PointerLocations)
|
||||
{
|
||||
offsetFile.WriteLine(String.Format(".org 0x{0:X} :: dw 0x{1:X8}",
|
||||
|
|
Loading…
Reference in New Issue