51
Scripting and Reverse Engineering / Re: How to Correctly Place Objects In A Field
« on: 2013-04-11 22:05:02 »
Nice; thanks
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.
Z is updated in real-time at 00CC1684 written from 0063762D, 00635147, 006359C9
I do not see it in menu memory. Is this value saved?
The best way is to use Black Chocobo... it can place you anywhere you want and tells you the exact X Y and Triangle (which BC has mistakenly called Z) values.
If you need me to tell you exact coords for certain places, I don't really have the time. But if you have PC version it would not be that difficult to find based on this method.
If you take a known fixed location (IE the game stuffs you at that location) and then get his memory dump you can use PSX utilis to scan the memory for a match.
I believe the GTE (PS1) uses data with a 12bit fractions in it's engine (hence why it appears shifted by 12 then they force it to an integer value).
It might take a few tries but it has a somehat fair chance of success.
You might also want to look at the PS1 cheat codes and see if anything is available in them similiar
Cyb
I have plenty more to ask of you, cause i typed my first python hello world yesterday (trying to convert your PSX Battle Model viewer python script from 2009 to a Noesis plugin myself.) but i'll give time to read about Noesis first. The main idea is you can import and export models to / from Noesis to so many different formats.
Yeah, wrote it the wrong way around.
$ gdb stageview
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\MinGW\msys\1.0\home\[USER OMITTED]\stageview.exe...done.
(gdb) b load_background
Breakpoint 1 at 0x401a62: file stageview.cpp, line 217.
(gdb) r C:\MinGW\msys\1.0\home\[USER OMITTED]\stage04.lzs
Starting program: C:\MinGW\msys\1.0\home\[USER OMITTED]\stageview.exe C:\MinGW\msys\1.0\home\[USER OMITTED]\stage04.lzs
[New Thread 1124.0xf7c]
Breakpoint 1, load_background (filename=..., bg=0x40c020) at stageview.cpp:217
217 bg->vertex_count = 0;
(gdb) n
218 bg->vertex = NULL;
(gdb) n
219 bg->element_count = 0;
(gdb) n
220 bg->element = NULL;
(gdb) n
221 bg->textures = NULL;
(gdb) n
222 bg->shader_count = 0;
(gdb) n
223 bg->shader = NULL;
(gdb) n
224 bg->mesh_count = 0;
(gdb) n
225 bg->mesh = NULL;
(gdb) n
228 int size = load_lzs(filename, (void**)&data);
(gdb) n
Program received signal SIGSEGV, Segmentation fault.
0x00401414 in get_u32le (buf=0x0) at stageview.cpp:45
45 return ((u8*)buf)[0] | (((u8*)buf)[1]<<8) | (((u8*)buf)[2]<<16)
| (((u8*)buf)[3]<<24);
(gdb)
$ gdb stageview
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\MinGW\msys\1.0\home\[USER OMITTED]\stageview.exe...done.
(gdb) b main
Breakpoint 1 at 0x402c41: file stageview.cpp, line 477.
(gdb) r C:\MinGW\msys\1.0\home\[USER OMITTED]\stage04.lzs
Starting program: C:\MinGW\msys\1.0\home\[USER OMITTED]\stageview.exe C:\MinGW\msys\1.0\home\[USER OMITTED]\stage04.lzs
[New Thread 3776.0x1ac]
Breakpoint 1, main (argc=2, argv=0x3e26f8) at stageview.cpp:477
477 {
(gdb) n
478 if (argc != 2) {
(gdb) n
483 getcwd(cwd, sizeof(cwd));
(gdb) n
485 string path;
(gdb) n
486 if (argv[1][0] != 0 && argv[1][0] != '/' && argv[1][1] !
= 0 && argv[1][1] != ':' && argv[1][2] != 0 && argv[1][2] != '\\') {
(gdb) n
491 glutInit(&argc, (char **) argv);
(gdb) n
492 glutInitWindowSize(640, 480);
(gdb) n
493 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH
);
(gdb) n
494 glutCreateWindow(argv[0]);
(gdb) n
495 glutDisplayFunc(MainRenderLoop);
(gdb) n
496 glutIdleFunc(MainRenderLoop);
(gdb) n
497 glutReshapeFunc(ReshapeWindowFunc);
(gdb) n
498 glutKeyboardFunc(KeyboardHandler);
(gdb) n
499 glutSpecialFunc(SpecialHandler);
(gdb) n
502 load_background(path + argv[1], &battle);
(gdb) n
Program received signal SIGSEGV, Segmentation fault.
0x00401414 in get_u32le (buf=0x0) at stageview.cpp:45
45 return ((u8*)buf)[0] | (((u8*)buf)[1]<<8) | (((u8*)buf)[2]<<16)
| (((u8*)buf)[3]<<24);
(gdb)