Paper Mario DX
Paper Mario (N64) modding
Loading...
Searching...
No Matches
load_engine_data_obfuscated.c
Go to the documentation of this file.
1
#include "common.h"
2
#include "ld_addrs.h"
3
#include "
mips.h
"
4
5
extern
u8
obfuscated_load_engine_data
[];
6
7
#ifdef SHIFT
8
void
load_engine_data
(
void
);
9
void
load_engine_data_obfuscated
(
void
) {
10
load_engine_data
();
11
}
12
#else
13
void
load_engine_data_obfuscated
(
void
) {
14
s32
seed
= 0x3C01A775;
15
u32
thisInsn
= 0xB0018FFC;
16
HeapNode
*(*load_engine_data)(
void
) = (
HeapNode
* (*)(
void
))
obfuscated_load_engine_data
;
// load_engine_data - ????????
17
s32
hash
= 0;
18
u32
prevInsn
;
19
u32
*
it
;
20
21
while
(
IO_READ
(
PI_STATUS_REG
) & (
PI_STATUS_DMA_BUSY
|
PI_STATUS_IO_BUSY
));
22
seed
-=
IO_READ
(
thisInsn
+ 0xFFFE7508);
23
24
prevInsn
= 0;
25
26
for
(
it
= (
u32
*)
create_audio_system_obfuscated_ROM_START
;
it
< (
u32
*)
create_audio_system_obfuscated_ROM_END
;
it
++) {
27
while
(
IO_READ
(
PI_STATUS_REG
) & (
PI_STATUS_DMA_BUSY
|
PI_STATUS_IO_BUSY
));
28
thisInsn
=
IO_READ
(
it
+ 0x4000000);
// ???
29
30
hash
+=
LOWER
(
thisInsn
) +
UPPER
(
thisInsn
);
31
32
if
(
OPCODE
(
prevInsn
) ==
LUI
&&
33
OPCODE
(
thisInsn
) ==
ADDIU
&&
34
GET_RS
(
thisInsn
) ==
GET_RT
(
prevInsn
) &&
35
GET_RS
(
thisInsn
) ==
GET_RT
(
thisInsn
))
36
{
37
hash
-=
LOWER
(
thisInsn
);
38
hash
-=
LOWER
(
prevInsn
);
39
}
40
41
if
(
OPCODE
(
thisInsn
) ==
JAL
) {
42
hash
-=
LOWER
(
thisInsn
) + (
UPPER
(
thisInsn
) & 0xFC00);
43
}
44
45
prevInsn
=
thisInsn
;
46
}
47
48
load_engine_data
+=
seed
+ 0xDDD20 -
hash
;
49
load_engine_data
();
50
}
51
#endif
PopupMenu_SelectedIndex
BSS s32 PopupMenu_SelectedIndex
Definition
8a860_len_3f30.c:84
HeapNode
Definition
common_structs.h:154
obfuscated_load_engine_data
u8 obfuscated_load_engine_data[]
load_engine_data_obfuscated
void load_engine_data_obfuscated(void)
Definition
load_engine_data_obfuscated.c:13
load_engine_data
void load_engine_data(void)
Definition
main_loop.c:284
mips.h
ADDIU
#define ADDIU
Definition
mips.h:5
LOWER
#define LOWER(x)
Definition
mips.h:8
GET_RS
#define GET_RS(x)
Definition
mips.h:11
UPPER
#define UPPER(x)
Definition
mips.h:9
JAL
#define JAL
Definition
mips.h:4
GET_RT
#define GET_RT(x)
Definition
mips.h:12
OPCODE
#define OPCODE(x)
Definition
mips.h:10
LUI
#define LUI
Definition
mips.h:6
src
load_engine_data_obfuscated.c
Generated by
1.10.0