import test ROM binary and source
BIN
m64p_test_rom.v64
Normal file
44
mupen64plus/MAKEFILE.MAK
Normal file
|
@ -0,0 +1,44 @@
|
|||
#/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
# * Mupen64plus - MAKEFILE.MAK *
|
||||
# * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
# * Copyright (C) 2008 Marshallh *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU General Public License as published by *
|
||||
# * the Free Software Foundation; either version 2 of the License, or *
|
||||
# * (at your option) any later version. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU General Public License *
|
||||
# * along with this program; if not, write to the *
|
||||
# * Free Software Foundation, Inc., *
|
||||
# * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
sm.bin: demo.lnk snmain.obj \
|
||||
demo.obj \
|
||||
gfxlib.obj \
|
||||
cfb.obj \
|
||||
stack.obj \
|
||||
zbuf.obj \
|
||||
fifo.obj
|
||||
|
||||
|
||||
psylink /p /m /c /s @demo.lnk,demo.bin,demo.sym,demo.map
|
||||
|
||||
../util/runcart -f -a 0x800F1800 -h ../util/ultra1.v64 -n 'Mupen64Plus' demo.bin
|
||||
ias E008 demo.bin
|
||||
|
||||
|
||||
|
||||
snmain.obj: snmain.s
|
||||
|
||||
.c.obj:
|
||||
|
||||
ccn64 -w -O2 -I. -IC:/n64/include -IC:/n64/include/PR -c $*.c
|
||||
.s.obj:
|
||||
asmn6432 /zd /l /ow- /g $*,$*
|
BIN
mupen64plus/assets/Bluegra2.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
22
mupen64plus/assets/LICENSES
Normal file
|
@ -0,0 +1,22 @@
|
|||
Mupen64plus Demo rom requires a number of binary artwork assets.
|
||||
|
||||
The following files:
|
||||
|
||||
logo.3ds
|
||||
logo_env.3ds
|
||||
Bluegra2.bmp
|
||||
bluegrad.bmp
|
||||
c_env.bmp
|
||||
c_gray.bmp
|
||||
Redgrad2.bmp
|
||||
redgrad.bmp
|
||||
White.bmp
|
||||
|
||||
are Copyright: The Mupen64plus Team
|
||||
| Copyright (C) 2008 Marshallh
|
||||
|
|
||||
| You may copy them under the Creative Common Attribution-ShareAlike 3.0
|
||||
| license, as found here:
|
||||
|
|
||||
| http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
3388
mupen64plus/assets/LOGO_ENV.H
Normal file
BIN
mupen64plus/assets/Redgrad2.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
mupen64plus/assets/White.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
mupen64plus/assets/bluegrad.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
174
mupen64plus/assets/box_n.h
Normal file
|
@ -0,0 +1,174 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - box_n.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
static Gfx Text_box_material01_C_dummy_aligner[] = { gsSPEndDisplayList() };
|
||||
|
||||
unsigned short Text_box_material01[] =
|
||||
{
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
|
||||
0xffff,0xffff,0xffff,0xffff
|
||||
};
|
||||
|
||||
Vtx_t Vtx_box_mesh01[] =
|
||||
{
|
||||
{-3000,3000,-3000,0,56,46,255,255,255,255},
|
||||
{-3000,-3000,-3000,0,56,46,255,255,255,255},
|
||||
{-3000,3000,3000,0,56,2001,255,255,255,255},
|
||||
{-3000,-3000,3000,0,56,2001,255,255,255,255},
|
||||
{3000,3000,-3000,0,1991,46,255,255,255,255},
|
||||
{3000,-3000,-3000,0,1991,46,255,255,255,255},
|
||||
{3000,3000,3000,0,1991,2001,255,255,255,255},
|
||||
{3000,-3000,3000,0,1991,2001,255,255,255,255},
|
||||
};
|
||||
|
||||
Gfx Vtx_box_mesh01_dl[] =
|
||||
{
|
||||
gsSPVertex(&Vtx_box_mesh01[0],1,0),
|
||||
gsSPVertex(&Vtx_box_mesh01[4],1,1),
|
||||
gsSPVertex(&Vtx_box_mesh01[6],1,2),
|
||||
gsSP1Triangle(0,1,2,0),
|
||||
gsSPVertex(&Vtx_box_mesh01[2],1,3),
|
||||
gsSP1Triangle(3,0,2,0),
|
||||
gsSPVertex(&Vtx_box_mesh01[1],1,4),
|
||||
gsSPVertex(&Vtx_box_mesh01[3],1,5),
|
||||
gsSPVertex(&Vtx_box_mesh01[7],1,6),
|
||||
gsSP1Triangle(4,5,6,0),
|
||||
gsSPVertex(&Vtx_box_mesh01[5],1,7),
|
||||
gsSP1Triangle(7,4,6,0),
|
||||
gsSP1Triangle(0,3,5,0),
|
||||
gsSP1Triangle(4,0,5,0),
|
||||
gsSP1Triangle(1,7,6,0),
|
||||
gsSP1Triangle(2,1,6,0),
|
||||
gsSP1Triangle(3,2,6,0),
|
||||
gsSP1Triangle(5,3,6,0),
|
||||
gsSP1Triangle(0,4,7,0),
|
||||
gsSP1Triangle(1,0,7,0),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
Gfx Wtx_box_box_dl[] =
|
||||
{
|
||||
gsDPLoadTextureBlock(Text_box_material01, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, 5, 5, G_TX_NOLOD, G_TX_NOLOD), gsSPDisplayList(Vtx_box_mesh01_dl),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
BIN
mupen64plus/assets/c_env.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
mupen64plus/assets/c_gray.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
mupen64plus/assets/logo.3ds
Normal file
1657
mupen64plus/assets/logo.an8
Normal file
BIN
mupen64plus/assets/logo_env.3ds
Normal file
1336
mupen64plus/assets/logo_env.an8
Normal file
3361
mupen64plus/assets/logo_env_n.h
Normal file
3782
mupen64plus/assets/logo_n.h
Normal file
BIN
mupen64plus/assets/redgrad.bmp
Normal file
After Width: | Height: | Size: 3.1 KiB |
37
mupen64plus/cfb.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cfb.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
|
||||
#ifdef SCREEN_BPP_8
|
||||
u8 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 8-bit */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_16
|
||||
u16 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 16-bit */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_32
|
||||
u32 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 32-bit */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
67
mupen64plus/control.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - control.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include\config.h"
|
||||
|
||||
extern OSMesgQueue SiMessageQ;
|
||||
/* extern OSPfs pfs[NUM_CONT]; */
|
||||
|
||||
OSContStatus statusData[NUM_CONT];
|
||||
OSContPad dummyControllerData = {0, 0, 0, 0};
|
||||
OSContPad controllerData[NUM_CONT];
|
||||
OSContPad* validControllerData[NUM_CONT];
|
||||
|
||||
int activeControllers[NUM_CONT];
|
||||
int numControllers=0;
|
||||
|
||||
/* Return how many controllers are connected
|
||||
* if there are more than <NUM_CONT> connected, return NUM_CONT
|
||||
* (ie specify how many controllers you want with NUM_CONT, and
|
||||
* the return result is the number of controllers actually hooked up)
|
||||
*/
|
||||
void initControllers(void)
|
||||
{
|
||||
int i;
|
||||
u8 pattern;
|
||||
osContInit(&SiMessageQ,&pattern,statusData);
|
||||
}
|
||||
|
||||
u32 initRumblePack(int contno)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Return pointer to controller data for each connected controller
|
||||
* oneshot = which buttons to treat as one-shots ("fire" buttons)
|
||||
* oneshot is any of the button macros (eg CONT_B, CONT_LEFT) ored together)
|
||||
*/
|
||||
void readController(void)
|
||||
{
|
||||
/* MotorSiGetAccess(); */
|
||||
osContStartReadData(&SiMessageQ);
|
||||
osWritebackDCacheAll();
|
||||
osRecvMesg(&SiMessageQ, NULL, OS_MESG_BLOCK);
|
||||
/* MotorSiRelAccess(); */
|
||||
osContGetReadData(controllerData);
|
||||
}
|
||||
|
529
mupen64plus/demo.c
Normal file
|
@ -0,0 +1,529 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - demo.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Use F3DEX microcode. */
|
||||
#define F3DEX_GBI
|
||||
|
||||
/* Include N64 defines. */
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
#include "include/helpfunc.h"
|
||||
#include "include/types.h"
|
||||
|
||||
#include "graphics.h"
|
||||
#include "sprite.h"
|
||||
#include "hardware.h"
|
||||
#include "control.h"
|
||||
|
||||
#define PI 3.141592654
|
||||
#define DEG90 PI/2
|
||||
#define DEG180 PI
|
||||
|
||||
/* Macros */
|
||||
#define vecCopy(A,B) B[0]=A[0]; B[1]=A[1]; B[2]=A[2];
|
||||
#define vecScale(A,B,C) C[0]=A[0]*(B); C[1]=A[1]*(B); C[2]=A[2]*(B);
|
||||
#define vecAdd(A,B,C) C[0]=A[0]+B[0]; C[1]=A[1]+B[1]; C[2]=A[2]+B[2];
|
||||
#define vecSet(V,X,Y,Z) V[0] = X; V[1] = Y; V[2] = Z;
|
||||
|
||||
#define DEG2RAD(f) (f) / 180 * PI
|
||||
#define RAD2DEG(f) (f) * 180 / PI
|
||||
|
||||
void renderObj(Gfx* displayList, vec3_t* pos, vec3_t* rot, float size, Gfx** listEnd);
|
||||
|
||||
/* Declare objects. */
|
||||
simpleObj camera;
|
||||
vec3_t camera_dest;
|
||||
vec3_t camera_pdest;
|
||||
float camera_lag = 1.0;
|
||||
float move_lag = 1.0;
|
||||
|
||||
simpleObj logo;
|
||||
simpleObj box;
|
||||
|
||||
Dynamic* generate; /* Dynamic info we're generating now. */
|
||||
int entity = 0;
|
||||
|
||||
/* Graphics variables. */
|
||||
int firstframe = 1; /* First frame. */
|
||||
Gfx* gdl_start; /* Start of this frame's dynamic display list. */
|
||||
Gfx* gdl_end; /* Current position in dynamic display list. */
|
||||
OSTask* gentask; /* Task we're generating. */
|
||||
u16 pnorm; /* Perpsective normal. */
|
||||
|
||||
/* Controller variables. */
|
||||
int analogX = 0;
|
||||
int analogY = 0;
|
||||
int button[4];
|
||||
OSContPad** pad;
|
||||
int lockCamera = 0;
|
||||
|
||||
char tempStr[256];
|
||||
|
||||
float f;
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
int l;
|
||||
int dist;
|
||||
int x;
|
||||
int y;
|
||||
int lastx = 0;
|
||||
int lasty = 0;
|
||||
|
||||
/* Effect variables. */
|
||||
int fade_trans = 0;
|
||||
float loopStart = 0;
|
||||
float loopEnd = 0;
|
||||
float loopTime = 0;
|
||||
float speed = 1;
|
||||
float sineCount = 0;
|
||||
float angle1;
|
||||
float angle2;
|
||||
|
||||
/* Custom variables. */
|
||||
float customVar1 = 0;
|
||||
float interp;
|
||||
float temp;
|
||||
float rotate = 0;
|
||||
float fov = 50;
|
||||
float count = 0;
|
||||
short stage = 0;
|
||||
short nextStage = 0;
|
||||
float logoscale = 0.5;
|
||||
int logotrans = 1;
|
||||
int logoenv = 190;
|
||||
|
||||
LookAt logola;
|
||||
Mtx logomat;
|
||||
|
||||
short buttonPress[255];
|
||||
|
||||
void boot(void* arg)
|
||||
{
|
||||
void MainProc(void*);
|
||||
register int i;
|
||||
|
||||
/* Init OS. */
|
||||
osInitialize();
|
||||
|
||||
/* Screen off. */
|
||||
osViBlack(TRUE);
|
||||
|
||||
/* Create main thread. */
|
||||
osCreateThread(&mainThread, MAIN_ID, MainProc, arg, (void*)(mainStack+STACKSIZE/8), (OSPri) MAIN_PRIORITY);
|
||||
|
||||
/* Start main thread. */
|
||||
osStartThread(&mainThread);
|
||||
}
|
||||
|
||||
void InitGlobalVars(void)
|
||||
{
|
||||
/* Initialize RSP Addresses. */
|
||||
rsp_static_len = _rsp_staticSegmentRomEnd - _rsp_staticSegmentRomStart;
|
||||
rsp_static_addr = (char*) _codeSegmentEnd;
|
||||
rsp_static_end = (char*) _codeSegmentEnd + rsp_static_len;
|
||||
|
||||
fifosize = (u8*)fifobuffer + (sizeof(u64) * FIFOSIZE) + 1;
|
||||
}
|
||||
|
||||
void MainProc(void *arg)
|
||||
{
|
||||
void GameProc(void*);
|
||||
|
||||
InitGlobalVars();
|
||||
|
||||
/* Create game thread. */
|
||||
osCreateThread(&gameThread, GAME_ID, GameProc, arg, (void *)(gameStack+STACKSIZE/8), GAME_PRIORITY);
|
||||
|
||||
/* Create video manager. */
|
||||
osCreateViManager(OS_PRIORITY_VIMGR);
|
||||
|
||||
/* Set video mode. */
|
||||
osViSetMode(&osViModeTable[SCREEN_MODE]);
|
||||
osViSetSpecialFeatures(OS_VI_DITHER_FILTER_OFF | OS_VI_GAMMA_OFF);
|
||||
|
||||
/* Create PI manager. */
|
||||
osCreatePiManager((OSPri) OS_PRIORITY_PIMGR, &PiMessageQ, PiMessages, PI_MSGQUEUE_SIZE);
|
||||
|
||||
/* Start game thread. */
|
||||
osStartThread(&gameThread);
|
||||
|
||||
/* Relinquish CPU. */
|
||||
osSetThreadPri(NULL, 0);
|
||||
|
||||
for(;;);
|
||||
}
|
||||
|
||||
void GameProc(void *arg)
|
||||
{
|
||||
void GameLoop();
|
||||
OSIoMesg dmaMb;
|
||||
Gfx* l;
|
||||
|
||||
/* Create DMA message queue. */
|
||||
osCreateMesgQueue(&DMAMessageQ, DMAMessages, DMA_MSGQUEUE_SIZE);
|
||||
|
||||
/* Create RSP message queue. */
|
||||
osCreateMesgQueue(&RSPDoneMessageQ, RSPDoneMessages, RSPDONE_MSGQUEUE_SIZE);
|
||||
osSetEventMesg(OS_EVENT_SP, &RSPDoneMessageQ, dummyMsg);
|
||||
|
||||
/* Create RDP message queue. */
|
||||
osCreateMesgQueue(&RDPDoneMessageQ, RDPDoneMessages, RDPDONE_MSGQUEUE_SIZE);
|
||||
osSetEventMesg(OS_EVENT_DP, &RDPDoneMessageQ, dummyMsg);
|
||||
|
||||
/* Create VRT message queue. */
|
||||
osCreateMesgQueue(&RetraceMessageQ, RetraceMessages, RETRACE_MSGQUEUE_SIZE);
|
||||
osViSetEvent(&RetraceMessageQ, dummyMsg, 1);
|
||||
|
||||
/* SI (controllers) */
|
||||
osCreateMesgQueue(&SiMessageQ, &SiMessages, 1);
|
||||
osSetEventMesg(OS_EVENT_SI, &SiMessageQ, (OSMesg)1);
|
||||
|
||||
initControllers();
|
||||
initWorld();
|
||||
|
||||
GameLoop();
|
||||
}
|
||||
|
||||
void initWorld()
|
||||
{
|
||||
vecSet(logo.pos, 0, 0, 0);
|
||||
vecSet(box.pos, 0, 0, 0);
|
||||
|
||||
camera.pos[0] = 0;
|
||||
camera.pos[1] = 20;
|
||||
camera.pos[2] = -300;
|
||||
|
||||
camera_dest[0] = 0;
|
||||
camera_dest[1] = 0;
|
||||
camera_dest[2] = 0;
|
||||
}
|
||||
|
||||
void loop1()
|
||||
{
|
||||
loopStart = (int)osGetTime() / 2100;
|
||||
/* OS_CYCLES_TO_USEC(osGetTime()); */
|
||||
|
||||
/* Run task we built during the previous frame. */
|
||||
if(!firstframe)
|
||||
osSpTaskStart(gentask);
|
||||
|
||||
/* Point to new dynamic buffer. */
|
||||
generate = &(dynamic[CFB_NextCount]);
|
||||
|
||||
/* Reset entity counter. (matrix and rotation object counter) */
|
||||
entity = 0;
|
||||
|
||||
/* Set up pointers to GDL. */
|
||||
gdl_start = generate->glist;
|
||||
gdl_end = gdl_start;
|
||||
|
||||
/* Init the GDL. */
|
||||
N64initDL (&gdl_end, gdl_start, rsp_static_addr, generate, Next_CFB, YES, YES);
|
||||
|
||||
checkCont();
|
||||
checkCamera();
|
||||
}
|
||||
|
||||
void checkCont()
|
||||
{
|
||||
/* Read from the joypad controllers. */
|
||||
readController();
|
||||
|
||||
button[0]=controllerData[0].button;
|
||||
analogX=(int)(controllerData[0].stick_x);
|
||||
analogY=(int)(controllerData[0].stick_y);
|
||||
|
||||
/* Deadzone */
|
||||
if(fabs(analogX) < 10) {analogX = 0;}
|
||||
if(fabs(analogY) < 10) {analogY = 0;}
|
||||
|
||||
if(analogX > 45) analogX = 45;
|
||||
if(analogX < -45) analogX = -45;
|
||||
if(analogY > 45) analogY = 45;
|
||||
if(analogY < -45) analogY = -45;
|
||||
}
|
||||
|
||||
void checkCamera()
|
||||
{
|
||||
Mtx ma;
|
||||
|
||||
camera.mov[0] = camera.pos[0];
|
||||
camera.mov[1] = camera.pos[1];
|
||||
camera.mov[2] = camera.pos[2];
|
||||
|
||||
camera_pdest[0] = camera_dest[0];
|
||||
camera_pdest[1] = camera_dest[1];
|
||||
camera_pdest[2] = camera_dest[2];
|
||||
|
||||
/* Set up projection matrix. */
|
||||
guPerspective(&(generate->proj), &pnorm, fov, 1.3333333, 50.0, 5000.0, 1.0);
|
||||
gSPPerspNormalize(gdl_end++, pnorm);
|
||||
|
||||
guLookAt(&(generate->view), camera.mov[0], camera.mov[1], camera.mov[2], camera_pdest[0], camera_pdest[1], camera_pdest[2], 0.0, 1.0, 0.0);
|
||||
|
||||
guLookAtReflect(&logomat, &logola, camera.mov[0], camera.mov[1], camera.mov[2], camera_pdest[0], camera_pdest[1], camera_pdest[2], 0.0, 1.0, 0.0);
|
||||
|
||||
gSPMatrix(gdl_end++, OS_K0_TO_PHYSICAL(&(generate->proj)), G_MTX_PROJECTION | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
gSPMatrix(gdl_end++, OS_K0_TO_PHYSICAL(&(generate->view)), G_MTX_PROJECTION | G_MTX_MUL | G_MTX_NOPUSH);
|
||||
}
|
||||
|
||||
|
||||
void drawSprites()
|
||||
{
|
||||
gDPPipeSync(gdl_end++);
|
||||
|
||||
SpriteInit(&gdl_end);
|
||||
|
||||
|
||||
/* Fade to black/ white. */
|
||||
if(fade_trans != 0)
|
||||
{
|
||||
if(fade_trans > 0)
|
||||
drawSprite(&gdl_end, &fade_white, 0, 0, 32, 32, 10, 7.5, fade_trans);
|
||||
else
|
||||
drawSprite(&gdl_end, &fade_black, 0, 0, 32, 32, 10, 7.5, -fade_trans);
|
||||
}
|
||||
|
||||
SpriteFinish(&gdl_end);
|
||||
}
|
||||
|
||||
void loop2()
|
||||
{
|
||||
drawSprites();
|
||||
|
||||
_gdlend:
|
||||
|
||||
/* End the GDL. */
|
||||
N64terminateDL(&gdl_end);
|
||||
|
||||
/* Init task. */
|
||||
gentask = &(task[CFB_NextCount]);
|
||||
N64initTask(gentask, gdl_end, gdl_start);
|
||||
|
||||
/* Flush cache. */
|
||||
osWritebackDCacheAll();
|
||||
|
||||
/* Wait for previous task to finish. */
|
||||
N64waitRSP(firstframe);
|
||||
N64waitRDP(firstframe);
|
||||
|
||||
_alldone:
|
||||
|
||||
/* Swap buffers. */
|
||||
N64swapCFB(firstframe);
|
||||
|
||||
loopEnd = (int)osGetTime() / 2100 ;
|
||||
/* OS_CYCLES_TO_USEC(osGetTime()); */
|
||||
|
||||
loopTime = loopEnd - loopStart;
|
||||
|
||||
speed = (float)loopTime / 100.0;
|
||||
|
||||
/* Wait for vertical retrace. */
|
||||
N64waitVRT();
|
||||
|
||||
firstframe = 0;
|
||||
}
|
||||
|
||||
void GameLoop()
|
||||
{
|
||||
float a_mag;
|
||||
|
||||
while (1)
|
||||
{
|
||||
loop1();
|
||||
|
||||
count++;
|
||||
|
||||
if(stage == 3)
|
||||
{
|
||||
logoenv = 190;
|
||||
fov = 90;
|
||||
vecSet(camera.pos, 0, -200, -170);
|
||||
vecSet(camera_dest, 0, 0, 0);
|
||||
|
||||
if(count > 1) {logotrans = 255;}
|
||||
|
||||
camera.pos[0] = -(count*0.5-160);
|
||||
camera.pos[1] = (-count*0.1+30);
|
||||
camera.pos[2] = -100;
|
||||
|
||||
camera_dest[0] = -(count*0.5-200)+100;
|
||||
camera_dest[1] = 0;
|
||||
camera_dest[2] = count/3;
|
||||
|
||||
if(count > 568)
|
||||
logotrans = (int)(32-(count-568))*8;
|
||||
|
||||
if(count >= 600 || nextStage == 1)
|
||||
{
|
||||
count = 0;
|
||||
stage = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if(stage == 2)
|
||||
{
|
||||
logoenv = 0;
|
||||
fov = 30;
|
||||
vecSet(camera.pos, 0, -200, -170);
|
||||
vecSet(camera_dest, 0, 0, 0);
|
||||
|
||||
if(count > 1) {logotrans = 255;}
|
||||
|
||||
if(count > 550)
|
||||
fov = (count-550)*0.1+30;
|
||||
|
||||
camera.pos[0] = -(count*0.5-200);
|
||||
camera_dest[0] = (count*0.5-200);
|
||||
|
||||
if(count > 568)
|
||||
logotrans = (int)(32-(count-568))*8;
|
||||
|
||||
if(count >= 600 || nextStage == 1)
|
||||
{
|
||||
count = 0;
|
||||
stage = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if(stage == 1)
|
||||
{
|
||||
logoenv = 190;
|
||||
vecSet(camera.pos, 0, 20, -300);
|
||||
vecSet(camera_dest, 0, 0, 0);
|
||||
|
||||
if(count > 1) {logotrans = 255;}
|
||||
if(count < 40)
|
||||
{
|
||||
fov = count/3+10;
|
||||
logotrans = count*6.375;
|
||||
}
|
||||
|
||||
if(count > 300 && count < 350)
|
||||
fov += 0.2;
|
||||
|
||||
if(count > 426)
|
||||
logotrans = (int)(64-(count-426))*4;
|
||||
|
||||
camera_dest[0] = (count/1.2-220);
|
||||
|
||||
if(count >= 490 || nextStage == 1)
|
||||
{
|
||||
count = 0;
|
||||
stage = 2;
|
||||
logotrans = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if(stage == 0)
|
||||
{
|
||||
logoenv = 0;
|
||||
logo.rot[1] = 0;
|
||||
vecSet(camera.pos, 0, 20, -300);
|
||||
vecSet(camera_dest, 0, 0, 0);
|
||||
|
||||
camera.pos[0] = (count-300)/4;
|
||||
camera.pos[1] = (count-300)/8;
|
||||
|
||||
if(count > 1) {logotrans = 255;}
|
||||
|
||||
if(count <= 40)
|
||||
{
|
||||
logoscale = (count/1600)+0.15;
|
||||
logotrans = count*6.375;
|
||||
}
|
||||
|
||||
if(count > 560)
|
||||
logotrans = (int)(64-(count-560))*4;
|
||||
|
||||
if(count >= 624 || nextStage == 1)
|
||||
{
|
||||
count = 0;
|
||||
stage = 1;
|
||||
logotrans = 1;
|
||||
}
|
||||
}
|
||||
|
||||
nextStage = 0;
|
||||
|
||||
guPosition( &(logomat), 90+logo.rot[0], logo.rot[1], logo.rot[2]-180, logoscale, logo.pos[0], logo.pos[1], logo.pos[2]);
|
||||
|
||||
/* Render Objects. */
|
||||
renderObj(Wtx_box_box_dl, box.pos, box.rot, 0.5, &gdl_end);
|
||||
gDPPipeSync(gdl_end++);
|
||||
gDPSetRenderMode(gdl_end++, G_RM_ZB_OPA_SURF, G_RM_ZB_OPA_SURF2);
|
||||
|
||||
if(logotrans == 255)
|
||||
renderObj(Wtx_logo_logo_dl, logo.pos, logo.rot, logoscale, &gdl_end);
|
||||
|
||||
/* Chnage render mode to transparent solids. */
|
||||
gDPPipeSync(gdl_end++); /* Always call PipeSync before changing rendermodes. */
|
||||
|
||||
gDPSetCombineMode(gdl_end++,G_CC_MODULATERGB_PRIM, G_CC_MODULATERGB_PRIM);
|
||||
gDPSetRenderMode(gdl_end++, G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2);
|
||||
gDPSetBlendColor(gdl_end++,0xff, 0xff, 0xff, 0x01);
|
||||
|
||||
gDPSetPrimColor(gdl_end++,0, 0, 255, 255, 255, logotrans);
|
||||
|
||||
if(logotrans < 255)
|
||||
renderObj(Wtx_logo_logo_dl, logo.pos, logo.rot, logoscale, &gdl_end);
|
||||
|
||||
/* Environmental Mapping. */
|
||||
gDPPipeSync(gdl_end++);
|
||||
gDPSetRenderMode( gdl_end++, G_RM_ZB_XLU_SURF,G_RM_ZB_XLU_SURF2);
|
||||
gDPSetCombineMode(gdl_end++, G_CC_MODULATERGB_PRIM, G_CC_MODULATERGB_PRIM);
|
||||
gSPSetGeometryMode(gdl_end++, G_LIGHTING | G_TEXTURE_GEN);
|
||||
gDPSetPrimColor( gdl_end++, 0, 0, 255, 255, 255, (float)logoenv*((float)logotrans/255.0));
|
||||
gSPTexture(gdl_end++, 31<<6, 31<<6, 0, G_TX_RENDERTILE, G_ON);
|
||||
|
||||
/* Position and render environment map model. */
|
||||
gSPMatrix(gdl_end++, &(logomat), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
gSPDisplayList(gdl_end++, Wtx_logo_env_logo_env_dl);
|
||||
|
||||
/* Back to normal. */
|
||||
gSPClearGeometryMode(gdl_end++, G_LIGHTING | G_TEXTURE_GEN);
|
||||
|
||||
loop2();
|
||||
}
|
||||
}
|
||||
|
||||
void renderObj(Gfx* displayList, vec3_t* pos, vec3_t* rot, float size, Gfx** DL_Pos)
|
||||
{
|
||||
/* Grab the DL. */
|
||||
Gfx* glistp;
|
||||
glistp = *DL_Pos;
|
||||
|
||||
/* Translate and rotate the object. */
|
||||
guPosition(&(generate->xform[entity]), 90+(*rot)[0], (*rot)[1], (*rot)[2]-90+270, size, (*pos)[0], (*pos)[1], (*pos)[2]);
|
||||
|
||||
gSPMatrix(glistp++, OS_K0_TO_PHYSICAL(&(generate->xform[entity])), G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
|
||||
gSPDisplayList(glistp++, displayList);
|
||||
|
||||
/* Give the DL back. */
|
||||
*DL_Pos = glistp;
|
||||
|
||||
entity++;
|
||||
}
|
||||
|
29
mupen64plus/fifo.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - fifo.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
|
||||
/* This is the fifobuffer that hold the generated DL, the bigger your 3d
|
||||
* scenes, the bigger it need to be. */
|
||||
u64 fifobuffer[FIFOSIZE+1];
|
||||
|
230
mupen64plus/gfxlib.c
Normal file
|
@ -0,0 +1,230 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - hardware.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
|
||||
Lights1 light1 = gdSPDefLights1(
|
||||
0xFF, 0x10, 0x10, /* Ambient color. */
|
||||
0xaf, 0xaf, 0xaf, /* Diffuse color. */
|
||||
-1, 0, 1 /* Normal. */
|
||||
);
|
||||
|
||||
/* Initialize RSP state DL. */
|
||||
Gfx N64DLinitRSP[] =
|
||||
{
|
||||
gsSPViewport(&vp),
|
||||
gsSPClearGeometryMode(G_SHADE | G_SHADING_SMOOTH | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD),
|
||||
gsSPTexture(0, 0, 0, 0, G_OFF),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Initialize RDP state DL. */
|
||||
Gfx N64DLinitRDP[] =
|
||||
{
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPPipelineMode(G_PM_NPRIMITIVE),
|
||||
gsDPSetScissor(G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT),
|
||||
gsDPSetColorDither(G_CD_ENABLE),
|
||||
gsDPPipeSync(),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
/* Clear ZBuffer DL. */
|
||||
Gfx N64DLclearZbuffer[] =
|
||||
{
|
||||
gsDPSetColorImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, OS_K0_TO_PHYSICAL(_zbuf)),
|
||||
gsDPPipeSync(),
|
||||
gsDPSetCycleType(G_CYC_FILL),
|
||||
gsDPSetRenderMode(G_RM_OPA_SURF, G_RM_OPA_SURF),
|
||||
gsDPSetFillColor(GPACK_ZDZ(G_MAXFBZ, 0) << 16 | GPACK_ZDZ(G_MAXFBZ, 0)),
|
||||
gsDPFillRectangle(0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1),
|
||||
gsDPNoOp(),
|
||||
gsDPPipeSync(),
|
||||
gsSPEndDisplayList(),
|
||||
};
|
||||
|
||||
/* Setup 3D rendering mode. */
|
||||
Gfx N64DLset3dRenderMode[] =
|
||||
{
|
||||
gsSPClearGeometryMode(G_SHADE | G_SHADING_SMOOTH | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD ),
|
||||
gsSPSetGeometryMode(G_SHADE | G_SHADING_SMOOTH | G_CULL_BACK | G_ZBUFFER),
|
||||
gsDPSetCycleType(G_CYC_1CYCLE),
|
||||
gsDPPipelineMode(G_PM_1PRIMITIVE),
|
||||
gsDPSetRenderMode(G_RM_ZB_OPA_SURF, G_RM_ZB_OPA_SURF2),
|
||||
gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
|
||||
gsDPSetTextureDetail(G_TD_CLAMP),
|
||||
gsDPSetTexturePersp (G_TP_PERSP),
|
||||
gsDPSetTextureLOD (G_TL_TILE),
|
||||
gsDPSetTextureFilter (G_TF_BILERP),
|
||||
gsDPSetTextureConvert(G_TC_FILT),
|
||||
gsDPSetTextureLUT (G_TT_NONE),
|
||||
gsDPSetCombineKey(G_CK_NONE),
|
||||
gsDPSetAlphaCompare(G_AC_NONE),
|
||||
gsSPTexture(0x8000, 0x8000, 0, 0, G_ON),
|
||||
gsDPPipeSync(),
|
||||
gsSPEndDisplayList()
|
||||
};
|
||||
|
||||
void N64setViewPort(int Xs, int Ys, int Xt, int Yt)
|
||||
{
|
||||
vp.vp.vscale[0]= Xs<<1;
|
||||
vp.vp.vscale[1]= Ys<<1;
|
||||
vp.vp.vtrans[0]= Xt<<1;
|
||||
vp.vp.vtrans[1]= Yt<<1;
|
||||
}
|
||||
|
||||
void N64clearScreen(Gfx** l)
|
||||
{
|
||||
Gfx* dl;
|
||||
|
||||
dl = *l;
|
||||
|
||||
gDPPipeSync(dl++);
|
||||
gDPSetCycleType(dl++, G_CYC_FILL);
|
||||
gDPSetRenderMode(dl++, G_RM_OPA_SURF, G_RM_OPA_SURF);
|
||||
gDPSetFillColor(dl++, ScreenClearColor);
|
||||
gDPFillRectangle(dl++, 0, 0, SCREEN_WIDTH-1, SCREEN_HEIGHT-1);
|
||||
gDPNoOp(dl++);
|
||||
gDPPipeSync(dl++);
|
||||
|
||||
*l = dl ;
|
||||
}
|
||||
|
||||
/* Initialize main displaylist. */
|
||||
void N64initDL(Gfx** DL_Pos, Gfx* DL_Start, char* rsp_static_addr, Dynamic* generate, u16* CFB, u16 cfbflag, u16 zbufflag)
|
||||
{
|
||||
Gfx* glistp;
|
||||
int i;
|
||||
|
||||
glistp = *DL_Pos;
|
||||
|
||||
gSPSegment(glistp++, 0, 0x0);
|
||||
gSPSegment(glistp++, STATIC_SEG, OS_K0_TO_PHYSICAL(rsp_static_addr));
|
||||
gSPSegment(glistp++, DYNAMIC_SEG, OS_K0_TO_PHYSICAL(generate));
|
||||
|
||||
gSPDisplayList(glistp++, N64DLinitRSP);
|
||||
gSPDisplayList(glistp++, N64DLinitRDP);
|
||||
|
||||
if(cfbflag == YES)
|
||||
{
|
||||
gDPSetColorImage(glistp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, OS_K0_TO_PHYSICAL(CFB));
|
||||
N64clearScreen(&glistp);
|
||||
}
|
||||
|
||||
if(zbufflag == YES)
|
||||
gSPDisplayList(glistp++, N64DLclearZbuffer);
|
||||
|
||||
gDPSetColorImage(glistp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, OS_K0_TO_PHYSICAL(CFB));
|
||||
|
||||
gSPDisplayList(glistp++, N64DLset3dRenderMode);
|
||||
|
||||
gDPSetDepthImage(glistp++, OS_K0_TO_PHYSICAL(_zbuf));
|
||||
|
||||
*DL_Pos = glistp;
|
||||
}
|
||||
|
||||
/* End main displaylist. */
|
||||
void N64terminateDL(Gfx** DL_Pos)
|
||||
{
|
||||
Gfx* glistp;
|
||||
|
||||
glistp = *DL_Pos;
|
||||
|
||||
gDPFullSync(glistp++); /* Only need this if you want 'accurate' SP done? */
|
||||
gSPEndDisplayList(glistp++);
|
||||
|
||||
*DL_Pos = glistp;
|
||||
}
|
||||
|
||||
/* Swap color frame buffers. */
|
||||
void N64swapCFB()
|
||||
{
|
||||
static int first=1;
|
||||
|
||||
if(first)
|
||||
{
|
||||
osViBlack(FALSE);
|
||||
first = 0;
|
||||
}
|
||||
|
||||
osViSwapBuffer(Logical_CFB);
|
||||
|
||||
CFB_Count++;
|
||||
if (CFB_Count >= NUM_CFB)
|
||||
CFB_Count = 0;
|
||||
|
||||
Logical_CFB = _cfb[CFB_Count];
|
||||
|
||||
CFB_NextCount = CFB_Count+1;
|
||||
if(CFB_NextCount >= NUM_CFB)
|
||||
CFB_NextCount = 0;
|
||||
|
||||
Next_CFB = _cfb[CFB_NextCount];
|
||||
}
|
||||
|
||||
/* Wait for Vertical Retrace. */
|
||||
void N64waitVRT()
|
||||
{
|
||||
if(MQ_IS_FULL(&RetraceMessageQ))
|
||||
osRecvMesg(&RetraceMessageQ, NULL, OS_MESG_BLOCK);
|
||||
osRecvMesg(&RetraceMessageQ, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
/* Wait on RDP. */
|
||||
void N64waitRDP(int first)
|
||||
{
|
||||
if(!first)
|
||||
osRecvMesg(&RDPDoneMessageQ, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
/* Wait for RSP. */
|
||||
void N64waitRSP(int first)
|
||||
{
|
||||
if(!first)
|
||||
osRecvMesg(&RSPDoneMessageQ, NULL, OS_MESG_BLOCK);
|
||||
}
|
||||
|
||||
/* Start rendering task and load microcode. */
|
||||
void N64initTask(OSTask* task, Gfx* gdl_end, Gfx* gdl_start)
|
||||
{
|
||||
task->t.type = M_GFXTASK;
|
||||
task->t.flags = 0;
|
||||
task->t.ucode_boot = rspbootTextStart;
|
||||
task->t.ucode_boot_size=((u32)rspbootTextEnd - (u32)rspbootTextStart);
|
||||
task->t.ucode = gspF3DEX_fifoTextStart;
|
||||
task->t.ucode_size = SP_UCODE_SIZE;
|
||||
task->t.ucode_data = gspF3DEX_fifoDataStart;
|
||||
task->t.ucode_data_size = SP_UCODE_DATA_SIZE;
|
||||
task->t.dram_stack = (u64*)_rspdrambuf;
|
||||
task->t.dram_stack_size = SP_DRAM_STACK_SIZE8;
|
||||
task->t.output_buff = fifobuffer;
|
||||
task->t.output_buff_size = (u64*)fifosize;
|
||||
task->t.data_ptr = (u64*)gdl_start;
|
||||
task->t.data_size = ((int) gdl_end - (int) gdl_start);
|
||||
task->t.yield_data_ptr = 0;
|
||||
task->t.yield_data_size = 0;
|
||||
}
|
||||
|
||||
|
32
mupen64plus/graphics.h
Normal file
|
@ -0,0 +1,32 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - graphics.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Include graphics models, textures, and sprites here. */
|
||||
|
||||
#include "assets/logo_n.h"
|
||||
#include "assets/logo_env.h"
|
||||
#include "assets/box_n.h"
|
||||
|
||||
#include "sprites/fade.h"
|
||||
|
||||
|
||||
|
||||
|
107
mupen64plus/hardware.h
Normal file
|
@ -0,0 +1,107 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - hardware.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Frame buffer variables. */
|
||||
|
||||
#ifdef SCREEN_BPP_8
|
||||
/* 8-bit CFB defines. */
|
||||
u8* Logical_CFB = _cfb[0];
|
||||
u8* Next_CFB = _cfb[1];
|
||||
u8* Next2_CFB = _cfb[2];
|
||||
u16 CFB_Count = 0; /* Current logical CFB. */
|
||||
u16 CFB_NextCount = 1; /* Next logical CFB. */
|
||||
u16 CFB_NextCount2 = 2; /* Second next logical CFB. */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_16
|
||||
/* 16-bit CFB defines. */
|
||||
u16* Logical_CFB = _cfb[0];
|
||||
u16* Next_CFB = _cfb[1];
|
||||
u16* Next2_CFB = _cfb[2];
|
||||
u16 CFB_Count = 0; /* Current logical CFB. */
|
||||
u16 CFB_NextCount = 1; /* Next logical CFB. */
|
||||
u16 CFB_NextCount2 = 2; /* Second next logical CFB. */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_32
|
||||
/* 32-bit CFB defines. */
|
||||
u32* Logical_CFB = _cfb[0];
|
||||
u32* Next_CFB = _cfb[1];
|
||||
u32* Next2_CFB = _cfb[2];
|
||||
u16 CFB_Count = 0; /* Current logical CFB. */
|
||||
u16 CFB_NextCount = 1; /* Next logical CFB. */
|
||||
u16 CFB_NextCount2 = 2; /* Second next logical CFB. */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* FIFO size */
|
||||
u8* fifosize;
|
||||
|
||||
/* Tasks */
|
||||
OSTask task[NUM_CFB];
|
||||
|
||||
/* Dynamic data */
|
||||
Dynamic dynamic[NUM_CFB];
|
||||
|
||||
/* Threads */
|
||||
static OSThread mainThread;
|
||||
static OSThread gameThread;
|
||||
|
||||
/* Stacks */
|
||||
u64 bootStack[STACKSIZE/8]; /* For boot code. Can reuse on boot code exit. */
|
||||
u64 mainStack[STACKSIZE/8]; /* Stacks for threads... */
|
||||
u64 gameStack[STACKSIZE/8];
|
||||
|
||||
|
||||
/* Message queues. */
|
||||
OSMesg PiMessages[PI_MSGQUEUE_SIZE];
|
||||
OSMesgQueue PiMessageQ;
|
||||
|
||||
OSMesg SiMessages;
|
||||
OSMesgQueue SiMessageQ;
|
||||
|
||||
OSMesg DMAMessages[DMA_MSGQUEUE_SIZE];
|
||||
OSMesgQueue DMAMessageQ;
|
||||
|
||||
OSMesg RDPDoneMessages[RDPDONE_MSGQUEUE_SIZE];
|
||||
OSMesgQueue RDPDoneMessageQ;
|
||||
|
||||
OSMesg RSPDoneMessages[RSPDONE_MSGQUEUE_SIZE];
|
||||
OSMesgQueue RSPDoneMessageQ;
|
||||
|
||||
OSMesg RetraceMessages[RETRACE_MSGQUEUE_SIZE];
|
||||
OSMesgQueue RetraceMessageQ;
|
||||
|
||||
OSMesg dummyMsg;
|
||||
|
||||
/* RSP */
|
||||
char *rsp_static_addr; /* R4300 addr where rsp_static segment loaded */
|
||||
char *rsp_static_end; /* R4300 addr+1 for end of the load region */
|
||||
u32 rsp_static_len ;
|
||||
|
||||
/* Viewport structure */
|
||||
Vp vp =
|
||||
{
|
||||
SCREEN_WIDTH*2, SCREEN_HEIGHT*2, G_MAXZ/2, 0, /* scale */
|
||||
SCREEN_WIDTH*2, SCREEN_HEIGHT*2, G_MAXZ/2, 0, /* translate */
|
||||
};
|
||||
|
||||
/* Screen clear color */
|
||||
u32 ScreenClearColor = GPACK_RGBA5551(0, 0, 0, 1);
|
191
mupen64plus/include/config.h
Normal file
|
@ -0,0 +1,191 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - config.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef __CONFIG_H__
|
||||
#define __CONFIG_H__
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
/* Controllers */
|
||||
#define NUM_CONT 4
|
||||
|
||||
/* Screen */
|
||||
#define SCREEN_WIDTH 320
|
||||
#define SCREEN_HEIGHT 240
|
||||
|
||||
#define SCREEN_BPP_16
|
||||
|
||||
#define SCREEN_MODE OS_VI_NTSC_LAN1 /* 16-bit 320x240 */
|
||||
/* #define SCREEN_MODE OS_VI_NTSC_LAN2 /* 32-bit 320x240 */
|
||||
/* #define SCREEN_MODE OS_VI_NTSC_HAN1 /* 16-bit 640x480 normal */
|
||||
/* #define SCREEN_MODE OS_VI_NTSC_HAF1 /* 16-bit 640x480 deflicker */
|
||||
|
||||
#define NUM_CFB 2
|
||||
|
||||
/* Maximum items drawn at once. */
|
||||
#define MAX_ENTITIES 128
|
||||
|
||||
/* Stack size. */
|
||||
#define STACKSIZE 0x2000
|
||||
|
||||
/* FIFO buffer size. */
|
||||
#define FIFOSIZE 131072 /* will require 256k */
|
||||
|
||||
/* RSP segment numbers. */
|
||||
#define STATIC_SEG 1
|
||||
#define DYNAMIC_SEG 2
|
||||
|
||||
/* Message queue lengths. */
|
||||
#define PI_MSGQUEUE_SIZE 8
|
||||
#define DMA_MSGQUEUE_SIZE 1
|
||||
#define RDPDONE_MSGQUEUE_SIZE 1
|
||||
#define RSPDONE_MSGQUEUE_SIZE 1
|
||||
#define RETRACE_MSGQUEUE_SIZE 1
|
||||
|
||||
/* Main display list size. */
|
||||
#define GDL_SIZE 32768
|
||||
|
||||
/* Thread priorities. */
|
||||
#define MAIN_PRIORITY 10
|
||||
#define GAME_PRIORITY 10
|
||||
|
||||
/* Thread ID. */
|
||||
#define MAIN_ID 3
|
||||
#define GAME_ID 4
|
||||
|
||||
/* Misc defines. */
|
||||
#define NO 0
|
||||
#define YES 1
|
||||
|
||||
#define _rsp_staticSegmentRomStart ((u32)_static_seg_org)
|
||||
#define _rsp_staticSegmentRomEnd ((u32)_static_seg_org+(u32)_static_seg_size)
|
||||
#define _cfbSegmentStart (_cfb_obj)
|
||||
#define _codeSegmentEnd ((u32)_code_bss_obj+(u32)_code_bss_size)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
Mtx proj;
|
||||
Mtx view;
|
||||
Mtx xform[MAX_ENTITIES];
|
||||
Gfx glist[GDL_SIZE];
|
||||
}
|
||||
Dynamic;
|
||||
|
||||
extern u32 ScreenClearColor;
|
||||
extern u64 _rspdrambuf[];
|
||||
extern u16 _zbuf[];
|
||||
|
||||
/* CFB */
|
||||
#ifdef SCREEN_BPP_8
|
||||
extern u8 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 8-bit */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_16
|
||||
extern u16 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 16-bit */
|
||||
#else
|
||||
#ifdef SCREEN_BPP_32
|
||||
extern u32 _cfb[NUM_CFB][SCREEN_WIDTH * SCREEN_HEIGHT]; /* 32-bit */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Frame buffer variables. */
|
||||
|
||||
#ifdef SCREEN_BPP_8
|
||||
extern u8* Logical_CFB; /* 8-bit */
|
||||
extern u8* Next_CFB;
|
||||
extern u8* Next2_CFB;
|
||||
extern u16 CFB_Count;
|
||||
extern u16 CFB_NextCount;
|
||||
extern u16 CFB_NextCount2;
|
||||
#else
|
||||
#ifdef SCREEN_BPP_16
|
||||
extern u16* Logical_CFB; /* 16-bit */
|
||||
extern u16* Next_CFB;
|
||||
extern u16* Next2_CFB;
|
||||
extern u16 CFB_Count;
|
||||
extern u16 CFB_NextCount;
|
||||
extern u16 CFB_NextCount2;
|
||||
#else
|
||||
#ifdef SCREEN_BPP_32
|
||||
extern u32* Logical_CFB; /* 32-bit */
|
||||
extern u32* Next_CFB;
|
||||
extern u32* Next2_CFB;
|
||||
extern u16 CFB_Count;
|
||||
extern u16 CFB_NextCount;
|
||||
extern u16 CFB_NextCount2;
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern Gfx* gdl_end;
|
||||
extern Gfx* gdl_start;
|
||||
extern OSTask task[];
|
||||
extern Dynamic* generate;
|
||||
|
||||
extern int entity;
|
||||
extern char* rsp_static_addr;
|
||||
extern char* rsp_static_end;
|
||||
extern u32 rsp_static_len;
|
||||
|
||||
extern Gfx rspinit_dl[];
|
||||
extern Gfx rdpinit_dl[];
|
||||
extern Gfx scrnclr_dl[];
|
||||
|
||||
extern Vp vp;
|
||||
|
||||
/* Message queues. */
|
||||
extern OSMesg PiMessages[];
|
||||
extern OSMesgQueue PiMessageQ;
|
||||
extern OSMesg DMAMessages[];
|
||||
extern OSMesgQueue DMAMessageQ;
|
||||
extern OSMesg RDPDoneMessages[];
|
||||
extern OSMesgQueue RDPDoneMessageQ;
|
||||
extern OSMesg RSPDoneMessages[];
|
||||
extern OSMesgQueue RSPDoneMessageQ;
|
||||
extern OSMesg RetraceMessages[];
|
||||
extern OSMesgQueue RetraceMessageQ;
|
||||
|
||||
/* Symbols to tell us where various segments are
|
||||
* in cartridge ROM, and in RDRAM.
|
||||
*/
|
||||
extern char _static_seg_org[];
|
||||
extern char _static_seg_size[];
|
||||
extern char _static_seg_obj[];
|
||||
extern char _rom_seg_org[];
|
||||
extern char _rom_seg_size[];
|
||||
extern char _cfb_obj[];
|
||||
extern char _code_bss_obj[];
|
||||
extern char _code_bss_size[];
|
||||
|
||||
extern u64 fifobuffer[];
|
||||
extern u8* fifosize;
|
||||
|
||||
extern Gfx N64DLinitRSP[];
|
||||
extern Gfx N64DLinitRDP[];
|
||||
extern Gfx N64DLclearZbuffer[];
|
||||
extern Gfx N64DLset3dRenderMode[];
|
||||
|
||||
extern Vp vp;
|
||||
extern Lights1 light1;
|
||||
|
||||
void boot(void*);
|
||||
|
||||
#endif /* __CONFIG_H__ */
|
98
mupen64plus/include/helpfunc.h
Normal file
|
@ -0,0 +1,98 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - helpfunc.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Reimplemented standard math functions. */
|
||||
|
||||
float pow(float inp, int to);
|
||||
float atan(float inp);
|
||||
float fabs(float inp);
|
||||
float sgn(float inp);
|
||||
float ceil(float inp);
|
||||
|
||||
/* Returns the arctangent, if given angle input is between -1 and 1 radians.
|
||||
* Uses an approximation of the Taylor series. Warning, slow.
|
||||
*/
|
||||
float atan(float inp)
|
||||
{
|
||||
float result = inp;
|
||||
int addsub = 0;
|
||||
int i = 0;
|
||||
|
||||
for(i=3; i<17; i+=2)
|
||||
{
|
||||
if(addsub == 0)
|
||||
{
|
||||
result -= pow(inp,i)/i;
|
||||
addsub = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
result += pow(inp,i)/i;
|
||||
addsub = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Take a base inp to a (whole number) power to. */
|
||||
float pow(float inp, int to)
|
||||
{
|
||||
float result = inp;
|
||||
int i = 0;
|
||||
|
||||
for(i = 1; i<to; ++i)
|
||||
result *= inp;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Returns -1 if inp is negative or 1 if inp is positive. */
|
||||
float sgn(float inp)
|
||||
{
|
||||
if(inp > 0)
|
||||
return 1.0;
|
||||
if(inp < 0)
|
||||
return -1.0;
|
||||
if(inp == 0)
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
/* Returns absolute value. |inp| */
|
||||
float fabs(float inp)
|
||||
{
|
||||
if (inp < 0)
|
||||
return -inp;
|
||||
else
|
||||
return inp;
|
||||
}
|
||||
|
||||
/* Rounds up to the next whole number. */
|
||||
float ceil(float inp)
|
||||
{
|
||||
int temp = 0;
|
||||
temp = (int)inp;
|
||||
if ((float)temp > inp)
|
||||
return (float)temp;
|
||||
else
|
||||
return (float)temp+1;
|
||||
}
|
||||
|
40
mupen64plus/include/types.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - types.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Type definitions. */
|
||||
|
||||
typedef float vec3_t[3];
|
||||
|
||||
typedef struct {
|
||||
float x;
|
||||
float y;
|
||||
} vec2;
|
||||
|
||||
/* Simple 3d object. */
|
||||
typedef struct {
|
||||
vec3_t pos;
|
||||
vec3_t mov; /* For camera interpolation. */
|
||||
vec3_t rot;
|
||||
} simpleObj;
|
||||
|
||||
|
||||
|
||||
|
33
mupen64plus/make
Normal file
|
@ -0,0 +1,33 @@
|
|||
#/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
# * Mupen64plus - make *
|
||||
# * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
# * Copyright (C) 2008 Marshallh *
|
||||
# * *
|
||||
# * This program is free software; you can redistribute it and/or modify *
|
||||
# * it under the terms of the GNU General Public License as published by *
|
||||
# * the Free Software Foundation; either version 2 of the License, or *
|
||||
# * (at your option) any later version. *
|
||||
# * *
|
||||
# * This program is distributed in the hope that it will be useful, *
|
||||
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# * GNU General Public License for more details. *
|
||||
# * *
|
||||
# * You should have received a copy of the GNU General Public License *
|
||||
# * along with this program; if not, write to the *
|
||||
# * Free Software Foundation, Inc., *
|
||||
# * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
@echo off
|
||||
|
||||
del demo.v64
|
||||
|
||||
set path=C:\n64\bin
|
||||
set PSYQ_PATH=C:\n64\bin
|
||||
|
||||
psymake /f makefile.mak
|
||||
|
||||
ren demo.bin demo.v64
|
||||
del demo.sym
|
||||
del demo.map
|
196
mupen64plus/sprite.h
Normal file
|
@ -0,0 +1,196 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - sprite.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Functions for drawing 32-bit alpha-blended sprites. */
|
||||
|
||||
void drawString(Gfx** glistp, int face, int x, int y, char* inpStr, f32 scaleX, f32 scaleY, int alpha);
|
||||
void drawChar(Gfx** glistp, int face, int ch, int x, int y, f32 scaleX, f32 scaleY, int alpha);
|
||||
void drawSprite(Gfx** glistp, void *buf, int x, int y, int width, int height, f32 scale_x, f32 scale_y, int alphabit);
|
||||
void SpriteFinish(Gfx** glistp);
|
||||
void SpriteInit(Gfx** glistp);
|
||||
|
||||
#define NUM_template_BMS (NUM_DL(52))
|
||||
|
||||
static Gfx sprite_dl[NUM_DL(NUM_template_BMS)];
|
||||
|
||||
Sprite default_sprite = {
|
||||
0,0, /* position: x,y */
|
||||
0,0, /* sprite size in texels: x,y */
|
||||
1.0,1.0, /* sprite scale: x,y */
|
||||
0,0, /* explosion: x,y */
|
||||
3, /* attribute: just copy :) */
|
||||
0x1234, /* sprite depth: z */
|
||||
255,255,255,255, /* sprite coloration RGBA */
|
||||
0,0,NULL, /* color lookup table: start_index, length, address */
|
||||
0,1, /* sprite bitmap index: start_index, increment */
|
||||
1, /* number of bitmaps */
|
||||
1, /* number of dl locations allocated */
|
||||
0,0, /* sprite bitmap height: used_height, physical height */
|
||||
G_IM_FMT_RGBA, /* sprite bitmap format */
|
||||
G_IM_SIZ_32b, /* sprite bitmap texel size */
|
||||
NULL, /* pointer to bitmaps */
|
||||
sprite_dl, /* rsp_dl: display list memory */
|
||||
NULL, /* rsp_next_dl: dynamic_dl pointer */
|
||||
0,0 /* texture fractional offsets */
|
||||
};
|
||||
|
||||
void drawString(Gfx** glistp, int face, int x, int y, char* inpStr, f32 scaleX, f32 scaleY, int alpha)
|
||||
{
|
||||
int i = 0;
|
||||
int fontID = 0;
|
||||
int sx = x;
|
||||
int sy = y;
|
||||
char ch;
|
||||
|
||||
for(i = 0; i < strlen(inpStr); i++)
|
||||
{
|
||||
fontID = 1024;
|
||||
ch = inpStr[i];
|
||||
switch(ch)
|
||||
{
|
||||
case 'a': {fontID = 0; break;}
|
||||
case 'b': {fontID = 1; break;}
|
||||
case 'c': {fontID = 2; break;}
|
||||
case 'd': {fontID = 3; break;}
|
||||
case 'e': {fontID = 4; break;}
|
||||
case 'f': {fontID = 5; break;}
|
||||
case 'g': {fontID = 6; break;}
|
||||
case 'h': {fontID = 7; break;}
|
||||
case 'i': {fontID = 8; break;}
|
||||
case 'j': {fontID = 9; break;}
|
||||
case 'k': {fontID = 10; break;}
|
||||
case 'l': {fontID = 11; break;}
|
||||
case 'm': {fontID = 12; break;}
|
||||
case 'n': {fontID = 13; break;}
|
||||
case 'o': {fontID = 14; break;}
|
||||
case 'p': {fontID = 15; break;}
|
||||
case 'q': {fontID = 16; break;}
|
||||
case 'r': {fontID = 17; break;}
|
||||
case 's': {fontID = 18; break;}
|
||||
case 't': {fontID = 19; break;}
|
||||
case 'u': {fontID = 20; break;}
|
||||
case 'v': {fontID = 21; break;}
|
||||
case 'w': {fontID = 22; break;}
|
||||
case 'x': {fontID = 23; break;}
|
||||
case 'y': {fontID = 24; break;}
|
||||
case 'z': {fontID = 25; break;}
|
||||
|
||||
case '0': {fontID = 26; break;}
|
||||
case '1': {fontID = 27; break;}
|
||||
case '2': {fontID = 28; break;}
|
||||
case '3': {fontID = 29; break;}
|
||||
case '4': {fontID = 30; break;}
|
||||
case '5': {fontID = 31; break;}
|
||||
case '6': {fontID = 32; break;}
|
||||
case '7': {fontID = 33; break;}
|
||||
case '8': {fontID = 34; break;}
|
||||
case '9': {fontID = 35; break;}
|
||||
case '"': {fontID = 36; break;}
|
||||
case '-': {fontID = 37; break;}
|
||||
case '=': {fontID = 38; break;}
|
||||
case '+': {fontID = 39; break;}
|
||||
case '!': {fontID = 40; break;}
|
||||
case '@': {fontID = 41; break;}
|
||||
case ':': {fontID = 42; break;}
|
||||
case '[': {fontID = 43; break;}
|
||||
case ']': {fontID = 44; break;}
|
||||
case '&': {fontID = 45; break;}
|
||||
case '*': {fontID = 46; break;}
|
||||
case '(': {fontID = 47; break;}
|
||||
case ')': {fontID = 48; break;}
|
||||
case '.': {fontID = 49; break;}
|
||||
case ',': {fontID = 50; break;}
|
||||
case '/': {fontID = 51; break;}
|
||||
}
|
||||
|
||||
|
||||
if(fontID != 1024)
|
||||
{
|
||||
drawChar(glistp, face, fontID, sx, sy, scaleX, scaleY, alpha);
|
||||
/* font structures not included */
|
||||
/* sx += (f32)(font[face*52 + fontID].width + 2) * scaleX; */
|
||||
}
|
||||
else
|
||||
sx += 8.0*scaleX;
|
||||
|
||||
if(ch == '\n')
|
||||
{
|
||||
sy+= (30.0)*scaleY;
|
||||
sx = x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void drawChar(Gfx** glistp, int face, int ch, int x, int y, f32 scaleX, f32 scaleY, int alpha)
|
||||
{
|
||||
/* drawSprite(glistp, font[ch+face*52].buf, x, y, 32, 32, scaleX, scaleY, alpha); */
|
||||
}
|
||||
|
||||
void drawSprite(Gfx** glistp, void* buf, int x, int y, int width, int height, f32 scale_x, f32 scale_y, int alphabit)
|
||||
{
|
||||
Sprite *sp;
|
||||
|
||||
Gfx *gxp, *dl;
|
||||
|
||||
Bitmap bm = {width, width, 0, 0, buf, height, 0};
|
||||
|
||||
gxp = *glistp;
|
||||
sp = &default_sprite;
|
||||
|
||||
sp->x = x;
|
||||
sp->y = y;
|
||||
sp->width = bm.width;
|
||||
sp->height = bm.actualHeight;
|
||||
sp->bmheight = bm.actualHeight;
|
||||
sp->bmHreal = bm.actualHeight;
|
||||
sp->bitmap = &bm;
|
||||
|
||||
spScale(sp, scale_x, scale_y);
|
||||
spColor(sp, 255, 255, 255, alphabit);
|
||||
|
||||
dl = spDraw(sp);
|
||||
gSPDisplayList(gxp++, dl);
|
||||
|
||||
*glistp = gxp;
|
||||
}
|
||||
|
||||
void SpriteFinish(Gfx** glistp)
|
||||
{
|
||||
Gfx *gxp;
|
||||
|
||||
gxp = *glistp;
|
||||
spFinish(&gxp);
|
||||
*glistp = (gxp-1); /* Don't use final EndDisplayList() */
|
||||
}
|
||||
|
||||
void SpriteInit(Gfx** glistp)
|
||||
{
|
||||
Gfx* gxp;
|
||||
|
||||
gxp = *glistp;
|
||||
spInit(&gxp);
|
||||
|
||||
default_sprite.rsp_dl_next = default_sprite.rsp_dl;
|
||||
|
||||
*glistp = gxp;
|
||||
}
|
||||
|
||||
|
441
mupen64plus/sprites/fade.h
Normal file
|
@ -0,0 +1,441 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - fade.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* Sprites for fading in and out of scenes. */
|
||||
/* All 32-bit RGBA format, 32x32. */
|
||||
unsigned int fade_black[] =
|
||||
{
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF,0xFF,
|
||||
0xFF,0xFF,0xFF,0xFF
|
||||
};
|
||||
|
||||
unsigned int fade_white[] =
|
||||
{
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF
|
||||
};
|
||||
|
26
mupen64plus/stack.c
Normal file
|
@ -0,0 +1,26 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - stack.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
|
||||
u64 _rspdrambuf[SP_DRAM_STACK_SIZE8]; /* Used for matrix stack. */
|
27
mupen64plus/zbuf.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - zbuf.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Marshallh *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program; if not, write to the *
|
||||
* Free Software Foundation, Inc., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <ultra64.h>
|
||||
|
||||
#include "include/config.h"
|
||||
|
||||
u16 _zbuf[SCREEN_WIDTH * SCREEN_HEIGHT]; /* Always 16-bit. */
|
||||
|