size &= 0xfffffffc;
heap_addr = (u32 *)Ra0;
- heap_end = (u32 *)((u8 *)heap_addr + size);
- *heap_addr = SWAP32(size | 1);
+ heap_size = size;
+ heap_end = (u32 *)((u8 *)heap_addr + heap_size);
+ /* HACKFIX: Commenting out this line fixes GTA2 crash */
+ //*heap_addr = SWAP32(size | 1);
SysPrintf("InitHeap %x,%x : %x %x\n",a0,a1, (int)((uptr)heap_addr-(uptr)psxM), size);
memset(Thread, 0, sizeof(Thread));
Thread[0].status = 2; // main thread
+ pad_stopped = 1;
jmp_int = NULL;
pad_buf = NULL;
pad_buf1 = NULL;
CardState = -1;
CurThread = 0;
memset(FDesc, 0, sizeof(FDesc));
+ card_active_chan = 0;
psxMu32ref(0x0150) = SWAPu32(0x160);
psxMu32ref(0x0154) = SWAPu32(0x320);