Refactor code into present project template.

This utilizes the dkp-pacman releases for devkitARM
and supporting libaries. Freetype is still a local build.
This commit is contained in:
Ray Haleblian (fusion-ubuntu16) 2019-01-07 00:47:46 -08:00
parent fee1f8cb8e
commit 38e8e7f1d3
92 changed files with 323 additions and 2065 deletions

11
.gitignore vendored
View File

@ -1,10 +1,7 @@
arm7/build/
arm7/dslibris.arm7
arm7/dslibris.arm7.elf
arm9/build/
arm9/dslibris.arm9
arm9/dslibris.arm9.elf
*.elf
/build
cflash.img
cflash.dmg
dslibris.nds
.DS_Store
/doc

318
Makefile
View File

@ -1,145 +1,225 @@
#
#
# dslibris - an ebook reader for the Nintendo DS.
#
# Copyright (C) 2007-2014 Ray Haleblian (ray23@sourceforge.net)
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
#-------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
.SUFFIXES:
#-------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
ifeq ($(strip $(DEVKITARM)),)
$(error "Set DEVKITARM in your environment.")
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
endif
# These set the information text in the nds file
#GAME_TITLE := My Wonderful Homebrew
#GAME_SUBTITLE1 := built with devkitARM
#GAME_SUBTITLE2 := http://devitpro.org
include $(DEVKITARM)/ds_rules
export TARGET := dslibris
export TOPDIR := $(CURDIR)
#---------------------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
# DATA is a list of directories containing binary files embedded using bin2o
# GRAPHICS is a list of directories containing image files to be converted with grit
# AUDIO is a list of directories containing audio to be converted by maxmod
# ICON is the image used to create the game icon, leave blank to use default rule
# NITRO is a directory that will be accessible via NitroFS
#---------------------------------------------------------------------------------
TARGET := $(shell basename $(CURDIR))
BUILD := build
SOURCES := source
INCLUDES := include
DATA := data
GRAPHICS := graphics
AUDIO :=
ICON := graphics/icon.bmp
# specify a directory which contains the nitro filesystem
# this is relative to the Makefile
NITRO :=
# MEDIATYPE should match a DLDI driver name.
MEDIATYPE := mpcf
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
ARCH := -marm -mthumb-interwork -march=armv5te -mtune=arm946e-s
#-------------------------------------------------------------------------------
# Device emulation.
#-------------------------------------------------------------------------------
# Location of desmume.
EMULATOR := desmume-cli
CFLAGS := -g -Wall -O3\
-Iinclude/freetype2\
$(ARCH) $(INCLUDE) -DARM9
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
ASFLAGS := -g $(ARCH)
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
.PHONY: checkarm7 checkarm9 clean \
browse debug debug7 debug9 dist dldi doc install install-dldi gdb
#---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project (order is important)
#---------------------------------------------------------------------------------
LIBS := -lfat -lnds9 -lfreetype -lexpat -lz -lbz2
# automatigically add libraries for NitroFS
ifneq ($(strip $(NITRO)),)
LIBS := -lfilesystem -lfat $(LIBS)
endif
# automagically add maxmod library
ifneq ($(strip $(AUDIO)),)
LIBS := -lmm9 $(LIBS)
endif
#---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing
# include and lib
#---------------------------------------------------------------------------------
LIBDIRS := $(LIBNDS) $(CURDIR)/$(BUILD) $(PORTLIBS)
#---------------------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add additional
# rules for different file extensions
#---------------------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#---------------------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(CURDIR)/$(subst /,,$(dir $(ICON)))\
$(foreach dir,$(SOURCES),$(CURDIR)/$(dir))\
$(foreach dir,$(DATA),$(CURDIR)/$(dir))\
$(foreach dir,$(GRAPHICS),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
PNGFILES := $(foreach dir,$(GRAPHICS),$(notdir $(wildcard $(dir)/*.png)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
# prepare NitroFS directory
ifneq ($(strip $(NITRO)),)
export NITRO_FILES := $(CURDIR)/$(NITRO)
endif
# get audio list for maxmod
ifneq ($(strip $(AUDIO)),)
export MODFILES := $(foreach dir,$(notdir $(wildcard $(AUDIO)/*.*)),$(CURDIR)/$(AUDIO)/$(dir))
# place the soundbank file in NitroFS if using it
ifneq ($(strip $(NITRO)),)
export SOUNDBANK := $(NITRO_FILES)/soundbank.bin
# otherwise, needs to be loaded from memory
else
export SOUNDBANK := soundbank.bin
BINFILES += $(SOUNDBANK)
endif
endif
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
#---------------------------------------------------------------------------------
export LD := $(CC)
#---------------------------------------------------------------------------------
else
#---------------------------------------------------------------------------------
export LD := $(CXX)
#---------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------
export OFILES_BIN := $(addsuffix .o,$(BINFILES))
export OFILES_SOURCES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
export OFILES := $(PNGFILES:.png=.o) $(OFILES_BIN) $(OFILES_SOURCES)
export HFILES := $(PNGFILES:.png=.h) $(addsuffix .h,$(subst .,_,$(BINFILES)))
export INCLUDE := $(foreach dir,$(INCLUDES),-iquote $(CURDIR)/$(dir))\
$(foreach dir,$(LIBDIRS),-I$(dir)/include)\
-I$(CURDIR)/$(BUILD)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
ifeq ($(strip $(ICON)),)
icons := $(wildcard *.bmp)
ifneq (,$(findstring $(TARGET).bmp,$(icons)))
export GAME_ICON := $(CURDIR)/$(TARGET).bmp
else
ifneq (,$(findstring icon.bmp,$(icons)))
export GAME_ICON := $(CURDIR)/icon.bmp
endif
endif
else
ifeq ($(suffix $(ICON)), .grf)
export GAME_ICON := $(CURDIR)/$(ICON)
else
export GAME_ICON := $(CURDIR)/$(BUILD)/$(notdir $(basename $(ICON))).grf
endif
endif
.PHONY: $(BUILD) clean
#---------------------------------------------------------------------------------
$(BUILD):
@mkdir -p $@
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(SOUNDBANK)
#---------------------------------------------------------------------------------
else
#---------------------------------------------------------------------------------
# main targets
#---------------------------------------------------------------------------------
all: checkarm7 checkarm9 $(TARGET).nds
$(OUTPUT).nds: $(OUTPUT).elf $(NITRO_FILES) $(GAME_ICON)
$(OUTPUT).elf: $(OFILES)
# source files depend on generated headers
$(OFILES_SOURCES) : $(HFILES)
# need to build soundbank first
$(OFILES): $(SOUNDBANK) lib/pkgconfig
#---------------------------------------------------------------------------------
checkarm7:
$(MAKE) -C arm7
# rule to build solution from music files
#---------------------------------------------------------------------------------
$(SOUNDBANK) : $(MODFILES)
#---------------------------------------------------------------------------------
mmutil $^ -d -o$@ -hsoundbank.h
#---------------------------------------------------------------------------------
checkarm9:
$(MAKE) -C arm9
#-------------------------------------------------------------------------------
$(TARGET).nds : arm7/$(TARGET).elf arm9/$(TARGET).elf
ndstool -b data/icon.bmp \
"dslibris;an ebook reader;for Nintendo DS" \
-c $(TARGET).nds -7 arm7/$(TARGET).elf -9 arm9/$(TARGET).elf
%.bin.o %_bin.h : %.bin
#---------------------------------------------------------------------------------
@echo $(notdir $<)
@$(bin2o)
#---------------------------------------------------------------------------------
arm7/$(TARGET).elf:
$(MAKE) -C arm7
# This rule creates assembly source files using grit
# grit takes an image file and a .grit describing how the file is to be processed
# add additional rules like this for each image extension
# you use in the graphics folders
#---------------------------------------------------------------------------------
%.s %.h: %.png %.grit
#---------------------------------------------------------------------------------
grit $< -fts -o$*
#---------------------------------------------------------------------------------
arm9/$(TARGET).elf:
$(MAKE) -C arm9
# Convert non-GRF game icon to GRF if needed
#---------------------------------------------------------------------------------
$(GAME_ICON): $(notdir $(ICON))
#---------------------------------------------------------------------------------
@echo convert $(notdir $<)
@grit $< -g -gt -gB4 -gT FF00FF -m! -p -pe 16 -fh! -ftr
#-------------------------------------------------------------------------------
clean:
$(MAKE) -C arm9 clean
$(MAKE) -C arm7 clean
rm -f $(TARGET).ds.gba $(TARGET).nds $(TARGET).$(MEDIATYPE).nds
-include $(DEPSDIR)/*.d
#-------------------------------------------------------------------------------
# Platform specifics.
#-------------------------------------------------------------------------------
include Makefile.$(shell uname)
#---------------------------------------------------------------------------------------
endif
#---------------------------------------------------------------------------------------
# Run under emulator with an image file.
# Use desmume 0.9.7+ with DLDI-autopatch.
test: $(TARGET).nds
$(EMULATOR) --preload-rom --cflash-image $(CFLASH_IMAGE) $(TARGET).nds
# Debug under emulation and arm-eabi-insight 6.8.1. Linux only.
# First, build with 'DEBUG=1 make'
debug9: $(TARGET).nds
arm-eabi-insight arm9/$(TARGET).arm9.elf &
$(EMULATOR) --preload-rom --cflash-image $(CFLASH_IMAGE) --arm9gdb=20000 $(TARGET).nds &
debug7: $(TARGET).nds
arm-eabi-insight arm7/$(TARGET).arm7.elf &
$(EMULATOR) --preload-rom --cflash-image $(CFLASH_IMAGE) --arm7gdb=20001 $(TARGET).nds &
debug: debug9
# Debug under emulation and arm-eabi-gdb.
gdb: $(TARGET).nds
$(EMULATOR) --preload-rom --cflash-image $(CFLASH_IMAGE) \
--arm9gdb=20000 $(TARGET).nds &
sleep 4
arm-eabi-gdb -x data/gdb.commands arm9/$(TARGET).arm9.elf
# Make DLDI patched target.
$(TARGET).$(MEDIATYPE).nds: $(TARGET).nds
cp dslibris.nds dslibris.$(MEDIATYPE).nds
dlditool data/dldi/$(MEDIATYPE).dldi dslibris.$(MEDIATYPE).nds
dldi: $(TARGET).$(MEDIATYPE).nds
# Copy target to mounted microSD at $(MEDIA_MOUNTPOINT)
install: $(TARGET).nds
cp $(TARGET).nds $(MEDIA_MOUNTPOINT)
sync
# Installation as above, including DLDI patching.
install-dldi: $(TARGET).$(MEDIATYPE).nds
cp $(TARGET).$(MEDIATYPE).nds $(MEDIA_MOUNTPOINT)/$(TARGET).nds
sync
doc: Doxyfile
doxygen
browse: doc
firefox doc/html/index.html
# Make an archive to release on Sourceforge.
dist/$(TARGET).zip: $(TARGET).nds INSTALL
- mkdir dist
- rm -r dist/*
cp INSTALL dist/INSTALL.txt
cp $(TARGET).nds data/$(TARGET).xml dist
- mkdir dist/font
cp data/font/*.ttf dist/font
- mkdir dist/book
(cd dist; zip -r $(TARGET).zip *)
dist: dist/$(TARGET).zip
lib/pkgconfig:
make -C ../portlibs

View File

@ -1,5 +1,5 @@
Herein lies the source for *dslibris*, an [EPUB](http://idpf.org/epub)
reader for the Nintendo DS.
ebook reader for the Nintendo DS.
![Startup Screen](etc/2.jpeg)
![A Sample (Left and Right) Page](etc/2-2.jpeg)

View File

@ -1,130 +0,0 @@
#-----------------------------------------------------------------------
.SUFFIXES:
#-----------------------------------------------------------------------
ifeq ($(strip $(DEVKITARM)),)
$(error "Please set DEVKITARM in your environment.")
endif
include $(DEVKITARM)/ds_rules
#-----------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory for object files & intermediate files
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#-----------------------------------------------------------------------
#TARGET := $(shell basename $(CURDIR))
TARGET := dslibris
BUILD := build
SOURCES := source
INCLUDES := ../include build
#-----------------------------------------------------------------------
# options for code generation
#-----------------------------------------------------------------------
ARCH := -mthumb -mthumb-interwork \
-mcpu=arm7tdmi -mtune=arm7tdmi
CFLAGS := -Wformat=2 -Wall -Winline \
-fomit-frame-pointer -ffast-math \
$(ARCH) $(INCLUDE) -DARM7
ifeq ($(DEBUG),1)
CFLAGS += -g
else
CFLAGS += -O2
endif
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
ASFLAGS := -g $(ARCH)
LDFLAGS = -specs=ds_arm7.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
#-----------------------------------------------------------------------
# any extra libraries we wish to link with the project
#-----------------------------------------------------------------------
LIBS := -lnds7
#-----------------------------------------------------------------------
# list of directories containing libraries, this must be the top level
# containing include and lib
#-----------------------------------------------------------------------
LIBDIRS := $(LIBNDS)
#-----------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add
# additional rules for different file extensions
#-----------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#-----------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
BINFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.bin)))
#-----------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#-----------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
#-----------------------------------------------------------------------
export LD := $(CC)
#-----------------------------------------------------------------------
else
#-----------------------------------------------------------------------
export LD := $(CXX)
#-----------------------------------------------------------------------
endif
#-----------------------------------------------------------------------
export OFILES := $(BINFILES:.bin=.o) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
$(foreach dir,$(LIBDIRS),-I$(dir)/lib) \
-I$(CURDIR)/$(BUILD)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
.PHONY: $(BUILD)
all: $(BUILD)
#-----------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#-----------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD)
@rm -fr $(TARGET).arm7.elf $(TARGET).arm7
#-----------------------------------------------------------------------
else
DEPENDS := $(OFILES:.o=.d)
#-----------------------------------------------------------------------
# main targets
#-----------------------------------------------------------------------
$(OUTPUT).elf : $(OFILES)
#-----------------------------------------------------------------------
%.o : %.bin
#-----------------------------------------------------------------------
@echo $(notdir $<)
$(bin2o)
-include $(DEPENDS)
#-----------------------------------------------------------------------------
endif
#-----------------------------------------------------------------------------

View File

@ -1,102 +0,0 @@
/*---------------------------------------------------------------------------------
default ARM7 core
Copyright (C) 2005
Michael Noland (joat)
Jason Rogers (dovoto)
Dave Murphy (WinterMute)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any
damages arising from the use of this software.
Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and
redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you
must not claim that you wrote the original software. If you use
this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
---------------------------------------------------------------------------------*/
#include <nds.h>
//#include <dswifi7.h>
//#include <maxmod7.h>
#include <nds/fifocommon.h>
#include "ndsx_brightness.h"
//---------------------------------------------------------------------------------
void VcountHandler() {
//---------------------------------------------------------------------------------
inputGetAndSend();
}
// FifoValue32HandlerFunc type function
void brightness_fifo(u32 msg, void* data) { //incoming fifo message
msg%=4;
if((bool)(readPowerManagement(PM_DSLITE_REG) & PM_IS_LITE))
{
writePowerManagement(PM_DSLITE_REG, msg);
}
else // Is Phatty!
{
if(msg == 0)
{
u32 reg_without_backlight = readPowerManagement(PM_CONTROL_REG) & ~PM_BACKLIGHTS;
writePowerManagement(PM_CONTROL_REG, reg_without_backlight);
return;
}
else if(msg == 1 ||
msg == 2 ||
msg == 3)
{
u32 reg_with_backlight = readPowerManagement(PM_CONTROL_REG) | PM_BACKLIGHTS;
writePowerManagement(PM_CONTROL_REG, reg_with_backlight);
return;
}
}
}
//---------------------------------------------------------------------------------
int main() {
//---------------------------------------------------------------------------------
// clear sound registers
dmaFillWords(0, (void*)0x04000400, 0x100);
REG_SOUNDCNT |= SOUND_ENABLE;
writePowerManagement(PM_CONTROL_REG, ( readPowerManagement(PM_CONTROL_REG) & ~PM_SOUND_MUTE ) | PM_SOUND_AMP );
powerOn(POWER_SOUND);
readUserSettings();
ledBlink(0);
irqInit();
// Start the RTC tracking IRQ
initClockIRQ();
fifoInit();
touchInit();
SetYtrigger(80);
//installWifiFIFO();
//installSoundFIFO();
//mmInstall(FIFO_MAXMOD);
installSystemFIFO();
fifoSetValue32Handler(BACKLIGHT_FIFO,&brightness_fifo,0);
irqSet(IRQ_VCOUNT, VcountHandler);
//irqSet(IRQ_VBLANK, VblankHandler);
irqEnable( IRQ_VBLANK | IRQ_VCOUNT | IRQ_NETWORK);
// Keep the ARM7 mostly idle
while (1) swiWaitForVBlank();
}

View File

@ -1,130 +0,0 @@
#-----------------------------------------------------------------------
.SUFFIXES:
#-----------------------------------------------------------------------
ifeq ($(strip $(DEVKITARM)),)
$(error "DEVKITARM not in environment.")
endif
include $(DEVKITARM)/ds_rules
#-----------------------------------------------------------------------
# TARGET is the name of the output
# BUILD is the directory where object files & intermediate files will be placed
# SOURCES is a list of directories containing source code
# INCLUDES is a list of directories containing extra header files
#-----------------------------------------------------------------------
TARGET := dslibris
BUILD := build
SOURCES := source
INCLUDES := ../include
DATA := ../data
#-----------------------------------------------------------------------
# options for code generation
#-----------------------------------------------------------------------
ARCH := -mthumb -mthumb-interwork -march=armv5te -mtune=arm946e-s
CFLAGS := -Wall -fomit-frame-pointer `freetype-config --cflags` \
-ffast-math $(ARCH) $(INCLUDE) -DARM9
ifeq ($(DEBUG),1)
CFLAGS += -g
else
CFLAGS += -O2
endif
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
ASFLAGS := -g $(ARCH)
LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) \
-Wl,-Map,$(notdir $*.map)
#-----------------------------------------------------------------------
# any extra libraries we wish to link with the project
#-----------------------------------------------------------------------
LIBS := `freetype-config --libs` -lexpat -lfat -lnds9
#-----------------------------------------------------------------------
# list of directories containing libraries, this must be the top level
# containing include and lib
#-----------------------------------------------------------------------
LIBDIRS := $(PORTLIBS) $(LIBNDS)
#-----------------------------------------------------------------------
# no real need to edit anything past this point unless you need to add
# additional rules for different file extensions
#-----------------------------------------------------------------------
ifneq ($(BUILD),$(notdir $(CURDIR)))
#-----------------------------------------------------------------------
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
export DEPSDIR := $(CURDIR)/$(BUILD)
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bin)))
PNGFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.png)))
#-----------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
#-----------------------------------------------------------------------
ifeq ($(strip $(CPPFILES)),)
#-----------------------------------------------------------------------
export LD := $(CC)
#-----------------------------------------------------------------------
else
#-----------------------------------------------------------------------
export LD := $(CXX)
#-----------------------------------------------------------------------
endif
#-----------------------------------------------------------------------
export OFILES := $(addsuffix .o,$(BINFILES)) \
$(PNGFILES:.png=.o) \
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
$(foreach dir,$(LIBDIRS),-I$(dir)/include ) \
-I$(CURDIR)/$(BUILD)
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
.PHONY: $(BUILD) export dldi test install
all: $(BUILD)
#-----------------------------------------------------------------------
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
#-----------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD)
@rm -fr $(TARGET).elf
#-----------------------------------------------------------------------
else
DEPENDS := $(OFILES:.o=.d)
#-----------------------------------------------------------------------
# main targets
#-----------------------------------------------------------------------
$(OUTPUT).elf : $(OFILES)
#-----------------------------------------------------------------------
%.o : %.bin
#-----------------------------------------------------------------------
@echo $(notdir $<)
$(bin2o)
-include $(DEPENDS)
#-----------------------------------------------------------------------------
endif
#-----------------------------------------------------------------------------

View File

@ -1,5 +0,0 @@
%.s %.h : %.png %.grit
$(DEVKITARM)/bin/grit $< -fts -o$*
splash.s:

View File

@ -1,8 +0,0 @@
<dslibris>
<screen brightness="1" invert="0" flip="0"/>
<margin top="10" left="12" bottom="16" right="12" />
<font path="/font/" size="12" normal="/font/LiberationSerif-Regular.ttf" bold="/font/LiberationSerif-Bold.ttf" italic="/font/LiberationSerif-Italic.ttf" />
<paragraph indent="0" spacing="1" />
<books path="/book/" reopen="1">
</books>
</dslibris>

View File

@ -1,665 +0,0 @@
@{{BLOCK(splash)
@=======================================================================
@
@ splash, 256x256@16,
@ Alphabit on.
@ + bitmap lz77 compressed
@ Total size: 18304 = 18304
@
@ Time-stamp: 2009-06-06, 12:06:47
@ Exported by Cearn's GBA Image Transmogrifier, v0.8.3
@ ( http://www.coranac.com/projects/#grit )
@
@=======================================================================
.section .rodata
.align 2
.global splashBitmap @ 18304 unsigned chars
splashBitmap:
.word 0x02000010,0xBDF7BD03,0x10F39CF7,0x87091001,0xEF7B0BD0,0x1930EF7B,0x17F00B10,0xF00B50FF
.word 0x50553017,0xB061303F,0xB059103F,0x5970FF17,0x99B07390,0x05902B70,0x23D049B0,0xF0FF47B0
.word 0xD09DD0E5,0xF0C9304D,0xD021906B,0xCF01F061,0x7311B1F0,0x01F0FC1F,0x01F001F0,0xF0FF01F0
.word 0xF001F001,0xD1E39001,0x70A77165,0x9FE991E3,0xF7BD5DF1,0x27B219D2,0x199259B0,0x51FF8132
.word 0xF00D906B,0xF189919B,0xF16BF195,0xFFB592C3,0x31F2A972,0x6DF097D2,0x79F0D1B2,0x07B06F52
.word 0xF18372FF,0xF001F091,0xF001F001,0xF001F001,0xFC1F3F01,0x1DF39F93,0xDDB319B2,0x39F1D9F1
.word 0x90C193FF,0xF033D027,0xF26BD401,0xD191F001,0xC1F1FFFF,0xF1F09BF4,0xD752DFD0,0xCDB115F1
.word 0xF0FF63F4,0xF121F02F,0xF001F091,0xF001F001,0xFF01F001,0xFF1101F0,0x57F3BD35,0x05B60DF0
.word 0xCD351B76,0xF40576FF,0xF5419441,0xF583F455,0xD2A9F1D9,0xC5F1FF1B,0xC3B38BF2,0x77F0B3F5
.word 0x0FF087F0,0xF0FF31F0,0x30FDF10F,0xF091F1B3,0xF001F001,0xFF01F001,0x01F001F0,0x17B3FF15
.word 0x15F1A7F4,0xFB37C173,0x725D55E7,0x5A75B149,0x9601F4EB,0xFF1DF351,0xABF501F0,0x1FF47BB2
.word 0x8BF2FF71,0x01F02BF0,0xF8CFF1FF,0xF2B55607,0xF091F261,0xF0FFF10F,0x01F0FF01,0x01F001F0
.word 0x01F001F0,0x25930B30,0xF0FF9DF0,0xD1EF7001,0xF11DD64F,0xF3455A93,0xFF9BF177,0xCB7579F1
.word 0x53F23B7A,0x6B7A01F2,0x87F03FF4,0xF077F0FF,0xF213F41D,0xF50FF053,0xF0FFF141,0x01F0FF01
.word 0x01F001F0,0x01F001F0,0x99D7FF51,0xF0FFF7F5,0xFAC1D3C7,0xF1F79513,0x934DD9E9,0xFF6DF8AB
.word 0x8DF07F77,0x61D185D0,0xDBF459D2,0xF7F09DF0,0xF229F0FF,0xF0EDF901,0xF143F241,0xF001F091
.word 0x01F0FF01,0x01F001F0,0xFF7B01F0,0xBBF0ADB3,0xF1FFCDDB,0xFAF5F331,0xBB05F65B,0xFDBBF3F9
.word 0xFF8F7961,0x2B90C9D7,0xD7F2B5D5,0x01F20BFC,0xFFF1BDF0,0xF0FFF1FF,0x5401F223,0xF091F183
.word 0xF001F001,0x01F0FF01,0x01F001F0,0xDDDDFF1D,0xE579B3FB,0xD59F17F0,0xBBEB5AF7,0x9225F165
.word 0xF3F97301,0xB3FBFECB,0x61B6DBF7,0x937E91FE,0xE1B14BB4,0xD0EB7F5A,0xF6E792B5,0xF227FCAF
.word 0xF201F201,0xFFF1FF53,0x01F001F0,0x01F001F0,0x01F001F0,0x97F3FF7D,0xF00DDF47,0x39C350FD
.word 0xDBD739E7,0x93BBFFD7,0xEFF93BB9,0xE5F155DC,0xA7F115F8,0xF6FF1BF0,0xD23BF221,0xF03DF001
.word 0xF16BF0D1,0xFF63F4DF,0xE3729DD0,0x01F091F1,0x01F001F0,0x01F001F0,0x3B01F0FF,0x9B2FFBFF
.word 0x9B09DFE7,0xD90152D7,0x6399FFFB,0x55D307F1,0xA3F9E5F1,0x87F1DDF9,0xF0FF27FC,0xF047F053
.word 0xF053D081,0xF651F62D,0xFF99F0E3,0xFFF153F0,0x01F001F0,0x01F001F0,0x01F001F0,0xF3FF55FF
.word 0xBC2FF3BB,0x97E5D0E7,0xF9CDF19F,0xB3F7FF1B,0x8BF141F2,0x0FF0C7F1,0x1DF20590,0xD0FF49F0
.word 0xFD01F03D,0xF0FD7EEB,0xF00FF01F,0xFF6B9F01,0x01F091F1,0x01F001F0,0x01F001F0,0xFFB101F0
.word 0xF099B7FF,0xF023F1CF,0x3C937D39,0xB929F10B,0x25FEFFA7,0xA5F1D7B1,0xE9D70DF0,0x01F07BF3
.word 0xF0FC8F76,0xF2C5F42B,0xF01FF02F,0xBD01F047,0xFBDE0FF7,0x0750FBDE,0x91F10B10,0xF0FF01F0
.word 0xF001F001,0xF001F001,0xF1FF1D01,0xFF93F3ED,0x37F3537B,0x1D56D9F1,0x63F625FE,0xA3D9ABF1
.word 0xF9D3D1FF,0xF4A5FCF9,0xF08BF471,0xF21DF0C7,0x4DF0FF69,0xDD51DFF1,0xF77119F0,0x91F12150
.word 0xF0FF01F0,0xF001F001,0xF001F001,0xD1FF7501,0xFFD1F155,0x1FD8D173,0x0FD345F7,0x3BF15FBE
.word 0xEF7D57D0,0xF48FD8FF,0xBE1BF02B,0xF3C9D6A5,0xF1B5F5F3,0x8DF6FFE1,0xD393DBB1,0x13F2EFB1
.word 0x91F13590,0xF0FF01F0,0xF001F001,0xF001F001,0xF1FF1B01,0xFF99FBD5,0xBD9F1FF3,0x457C359A
.word 0x55D259F1,0xBBD3A591,0xF1219EF0,0xB539F49B,0x29B18CB9,0xB5AD30A5,0x857CDDFB,0xAD6BB5AD
.word 0xB0A52930,0xEFF53181,0x3FB5ADBD,0x57F094A5,0xCDF3B775,0xFBB3EBB1,0xF0FF0552,0xF0FFF701
.word 0xF001F001,0xF001F001,0xFF01F001,0xC57DFF5D,0xA9DDC391,0x2BB70FF3,0x39F0B951,0xF03BF3FE
.word 0xF3EBF755,0xF0F7F5F5,0xADB5145D,0x8000B51C,0xFF710110,0xBDEF3FD6,0x6B213090,0xA53558AD
.word 0x02800094,0xF7BDC210,0x3B30D294,0x739870C6,0x91C1F3AF,0xC6EF7BD3,0x80000F98,0x15F1BDEF
.word 0x01F001F0,0xF0FFFFF1,0xF001F001,0xF001F001,0x7D01F001,0xFFEDB3FF,0xA9F145B7,0xADF51DF5
.word 0x19F02D70,0xDFF7EFFB,0xF019F0F3,0x5E2BF27F,0x71AD6B9D,0x81D5B8FF,0xA1087F59,0xB9CE8000
.word 0x9C3F8539,0x12C391F3,0xF3FF311D,0xF101F0FF,0x01F0FFFF,0xFFF101F0,0x01F001F0,0x01F001F0
.word 0xF0FF01F0,0xB5FFD901,0xF3B5D91D,0x70017285,0xFFCD7D39,0x5955D75B,0x4BF21BD6,0x19FE3190
.word 0x31FC21DC,0x14B9F7F9,0xB9933103,0x4A777B6D,0xFFFF31A9,0xFF51D9F1,0x01F001F0,0x01F001F0
.word 0x739001F0,0xF091F1FF,0xF001F001,0xF001F001,0x1B01F001,0x71F3F3FF,0xFF7BFBF7,0xE73921D0
.word 0xDBB13F56,0xB405D6FF,0xF55BF80B,0xB867F4DD,0xB563B783,0xB9CE3FAB,0x8B99CF35,0x2110CFB3
.word 0x6F3021D4,0xF1C6313F,0xF001F0FF,0xF001F001,0xFF01F001,0x01F091F1,0x01F001F0,0x01F001F0
.word 0xFF1B01F0,0x9D4F99FF,0x51F5F393,0x12B59F91,0xBD03B401,0x7DF7FFBF,0x27944FF8,0x01F0E7F1
.word 0x7DB95179,0x11FC557D,0x9093F5FF,0xF1251805,0x73D716FF,0x80000FCE,0x17F09CE7,0x01F001F0
.word 0xF0FF01F0,0xF14FBA01,0xF001F091,0xF001F001,0xFF01F001,0xFF3D01F0,0x315D79D9,0x03F691F1
.word 0xDBF1533D,0xB0DDB5FF,0xF061FD3D,0xBF29F101,0x1B01F047,0x908421B9,0xA529FB19,0xFF919CE7
.word 0x10CE7320,0x4280000F,0xB560AD88,0xFFB1C554,0xA529BDEF,0x71A56629,0x310B10FF,0x12151AC6
.word 0xDE48F70B,0xDEF7ED57,0xDEF71B1C,0x1ADE7FF7,0x90613631,0xF06BF03B,0xF0FFFD01,0x01F0FF01
.word 0x01F001F0,0x01F001F0,0x9DF9FFF1,0xF1FF63D7,0xF20DF0B7,0xF0C3F301,0xF0D7F101,0xC31BF00F
.word 0x991101F0,0xC6319CE7,0xB731BF35,0x15FF53E7,0xEFE93BCF,0xD10112BD,0xFC2F5CFF,0x235CFFB1
.word 0x01323732,0x5B1CE919,0x32FFD6B5,0xB0291E67,0xF06BF03B,0xF149BA01,0xFF01F091,0x01F001F0
.word 0x01F001F0,0xFF7101F0,0xBD93EBF1,0xF125FFFF,0xF001F0DB,0xF1CBF101,0xF001F017,0xB3F79201
.word 0xA5738000,0x9D73F7BD,0x63F707BD,0x9F90848C,0xBCFFF3DB,0xFF15862F,0x8C638842,0x2B3E4D32
.word 0x5B9449A5,0x548842EF,0x3A98C611,0x6B9C9F61,0x6BF09084,0xFFF701F0,0x01F001F0,0xF001F0FF
.word 0xF001F001,0xF1FFFB01,0xF0DFF1CB,0x01F0FF01,0xD3F1CFF1,0x01F001F0,0x01F001F0,0x632403B0
.word 0x29B1B78C,0x7BFF57A5,0x800027EF,0xCE739371,0xF35DFFF1,0x3927FFB1,0x000F9CE7,0x110F5080
.word 0xFF6734FF,0x3BB00516,0xA9F06BF0,0x01F0FFF1,0x01F001F0,0xF001F0FF,0xF001F001,0xF091F001
.word 0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0xFDF301F0,0x71FFCBD9,0x189313FF,0xFB1D9411
.word 0x77FFD1FF,0x39F353CF,0xFF73D6B5,0x3B924BB0,0x6BF08C63,0xF101F0FF,0xF001F0FF,0xF001F001
.word 0xF001F001,0xFFF1FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF181F101
.word 0x15B359FF,0xF3C939B3,0xFFB9137C,0xFF1B0D9A,0x6590A94A,0xF1FFF717,0xF03BF0FF,0xF101F06B
.word 0xF001F0FF,0xFF01F001,0x01F001F0,0x01F001F0,0x01F091F0,0x01F001F0,0xF001F0FF,0xF001F001
.word 0xF001F001,0xF1CBFD01,0xFFBDFFFF,0x9B13A919,0xAD3E9F15,0xFFF1FFF1,0x95FFFF91,0x90FFF1FF
.word 0x3C151A7D,0xF06B5087,0xFFFFF101,0x01F001F0,0x01F001F0,0x01F001F0,0x01F0FFF1,0xF001F0FF
.word 0xF001F001,0xF001F001,0xF001F001,0x01F0F901,0xA179FFB3,0x7FF3A95B,0x191CEF7B,0xF1253CF9
.word 0xF5B73BFF,0xC6D519FF,0xFFFF9998,0x3B50FFF1,0x35146B90,0x01F0913C,0x01F0FFF1,0xF001F0FF
.word 0xF001F001,0xF101F001,0xF001F0FF,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0x709F01F0
.word 0x1DD6B507,0x186B71A7,0x9AFF790F,0xD51DF819,0x033EFFF1,0xFFD1F353,0x1F00E739,0xF1CE7380
.word 0x32FF93FF,0xF16BF02F,0xFFF1FFFF,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F091
.word 0xF001F001,0xF001F001,0xFF01F001,0x01F001F0,0xEF1D01F0,0xB91FF159,0xFF51A51D,0x3D917DF9
.word 0xF1D93BAB,0xA5C39FFF,0x3FB77C94,0x4994AD6B,0xFF91FFF1,0xABF06BF0,0xF0FFFFF1,0xF001F001
.word 0xF001F001,0xF101F001,0xFF01F0FF,0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0,0xD001F0FF
.word 0x34777901,0x3EFF1909,0x55BD1311,0x271ACFCD,0x9CE7155A,0x0DD02150,0xE33FEF3D,0x73DD17FF
.word 0x3C0B34FB,0x70D77E59,0xF06BF049,0xFFF1FFA9,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0
.word 0xF001F091,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0,0xA51501F0,0x7519F31B,0x0B90AB15
.word 0x13BDEF3F,0x35933B89,0x3BD13FC7,0xCCAD19A7,0xC71F3972,0x0110BDEF,0xA529C73B,0x1FC179FC
.word 0x3929B0DD,0x503BB0FB,0xFFA1086B,0x01F03792,0x01F0FFF1,0x01F001F0,0x01F001F0,0xF101F0FF
.word 0xF001F0FF,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0
.word 0xF001F001,0xF001F001,0xF101F001,0xFF01F0FF,0x01F001F0,0x01F001F0,0x01F001F0,0x01F091F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF0FF01F0,0xF001F001,0xF0FFF101,0xF001F001,0xFF01F001,0x01F001F0,0x01F0FFF1,0x01F001F0
.word 0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF0FFFFF1,0xF001F001,0xF001F001,0xF101F001,0xFF01F0FF,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0
.word 0xFFF101F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF0FFF101,0xF001F001,0xFF01F001,0x01F001F0
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0xFFF1FF01
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xF0FFFFF1,0xF001F001,0xF001F001,0xF001F001,0xFF01F001
.word 0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0F8,0xF001F001,0x9C473C01,0xF3139CF3
.word 0x0510EF7B,0xFFF1F39C,0xF0FF01F0,0xF001F001,0xF001F001,0xF0FFF101,0xFF01F001,0x01F001F0
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0xE131F001
.word 0x0D70EB71,0xEF7B497E,0x5A3FEB5A,0xF10512EB,0xF001F091,0xF001F001,0x01F0FF01,0xFFF101F0
.word 0x01F001F0,0x01F001F0,0xF0FC01F0,0xF001F001,0xF001F001,0xB59F3F01,0xB11F9CD6,0x6553C631
.word 0x89B187F1,0x000F9CE7,0xF0AD6B80,0xF101F047,0x3F73B0D9,0xE1B1C210,0xE173DF11,0x15727B70
.word 0xF1FF0172,0xF001F091,0xF001F001,0xF001F001,0xFFFFF101,0x01F001F0,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF001F0E7,0xD6555501,0xF1FF51DA,0x9F733173,0x94A58DB3,0xA9D5FFF1,0x4750BFD3
.word 0x11FFCB73,0xB0CB33FF,0xF0279023,0xF1235047,0xFF01F091,0x01F001F0,0x01F001F0,0xFFF101F0
.word 0x01F001F0,0xF001F0FF,0xF001F001,0x5301F001,0xF07FF1B9,0xE573C001,0xE3185557,0xCA528000
.word 0x92F553FF,0x5411D003,0xD0FF1101,0xB135F45F,0x13D0FFB7,0xEF517314,0xCBF001D2,0x91F149D0
.word 0xF0FF01F0,0xF001F001,0xF001F001,0xF0FFF101,0xFF01F001,0x01F001F0,0x5FF101F0,0xB1F1F3F1
.word 0x47D02B59,0x29E73909,0xE7EF15A5,0x205D779C,0xFF15E739,0x800094A5,0xB5841021,0x315D1BD6
.word 0x988421C6,0xB5AD1516,0xF3157737,0x12A58000,0x71DAD694,0x10EB5AFF,0xD2649431,0x4110AB53
.word 0x1B36C631,0x3081AD6B,0x9CEB5A63,0x10D6B5F3,0x80000859,0xBF35BDEF,0x0463C210,0x4280008C
.word 0x9C733688,0xBDEF20F3,0x94A56B10,0x04BDDEF7,0xE7DEF7F7,0x630F109C,0x39F2FF8C,0x91F105B4
.word 0x01F001F0,0x01F001F0,0xF0FF01F0,0xF0FFF101,0xF093B301,0xF031F501,0xF8C7B10D,0x9D9507F1
.word 0x0F703B73,0xEF7B57D0,0x31B910CE,0x007311C6,0xC8CE7380,0xFF11B153,0x591994A5,0x012194A5
.word 0x73EF7B84,0x118842CE,0xCD11938D,0xEF55BDEF,0x1D10EF7B,0x13C3D111,0xE70D10FF,0x19DEF79C
.word 0x8031328D,0xDEF7E331,0xA529AD6B,0x129C48E7,0x118C6369,0x399CE7F3,0x3538E764,0xB5ADBD1B
.word 0xF39C6910,0x188512C3,0x63BDEF73,0x101F308C,0x89189F27,0x6F12A529,0x21B11FF1,0x01F091F1
.word 0xF001F0FF,0xF001F001,0xF101F001,0x5501F0FF,0x17B5FF11,0xC7D1B3D3,0x7D95E758,0xE7F33977
.word 0x90FF111B,0xD53DD71F,0x193F5B5D,0x134F52F1,0x86F733FF,0xD2940918,0xF733A529,0x7863C713
.word 0x351D188C,0x112734A1,0xC69CE7FF,0xBD339879,0xFB136776,0x8000A339,0x1199CB13,0x5294A5DB
.word 0x39651AB3,0xCC1B30E7,0x731A7350,0x611294A5,0xEF7B853A,0xF18970FF,0xF1FDB2F1,0xF001F091
.word 0xF001F001,0x01F0FF01,0xFFF101F0,0xBBF201F0,0xA3955DB9,0xF0FEBD53,0x72D5F119,0xB017BF1F
.word 0x7935BD1D,0xE701394F,0x9CE7A94A,0xF199A94A,0x35FF17E7,0xD60916F7,0x31B733DA,0x26191CC1
.word 0x8F598000,0xD1338842,0x79082714,0x31EBB0A1,0x304F5CFF,0x15A52903,0xAD6B09D3,0x75169CE7
.word 0x0532E739,0x3C8730E7,0x632B7073,0x91FF718C,0xFF49F12D,0x01F0FFF1,0x01F001F0,0x01F001F0
.word 0x0B3001F0,0xF9D9F5FF,0x759BF783,0xD1D1F097,0xF11194E7,0x1FF3FFF3,0x57DD15F6,0x93157519
.word 0xFF33471F,0x7186F13D,0x63CE73FF,0x51DF338C,0x9466A5FF,0xE5571F1E,0x271A8842,0x7952FF19
.word 0xD14318CA,0x1AD710FF,0x96DAD64D,0xD6B5025B,0xD294F39C,0x7FF7FF13,0x106954DE,0x72891609
.word 0x3815526B,0xFF159781,0xFFF505F4,0x01F001F0,0x01F001F0,0x01F001F0,0xB50D10FF,0xDACDF191
.word 0xF027F0CB,0xF2BDD333,0x93FBFF2B,0x57F083F2,0x87392394,0xF13D9F19,0x2939FF59,0x110716A5
.word 0x6BF737ED,0x0F171EAD,0xCE738C63,0x05163312,0xCF353510,0x1794A527,0x52B9CEA3,0x18CD3001
.word 0xC93BC953,0xE3181F14,0xCE737D16,0xB524E91F,0x003B18D6,0x63131080,0x94A5328C,0x6D1A0716
.word 0x8F18C210,0x94841F21,0x327B32D2,0xF3971815,0xFFFFF139,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xBB9501F0,0x90ADB7FF,0x1B6D17AD,0xF6B7F703,0xFB05F4DD,0x0BF1F9F5,0x25D645F0,0x991B55B8
.word 0xA3358C63,0x339713F9,0x11A13B8B,0xAD9B3D99,0xCC9135B5,0x1F502334,0xFD39A529,0xEF7B3F3C
.word 0x75493CF3,0x16F115FD,0x5CE73955,0xC9F9512F,0x4716193C,0x673CDAD6,0x1F16CE73,0x3C0112FF
.word 0x392B1A2B,0xF27B32FF,0xF0FFFDC9,0x01F0FF01,0x01F001F0,0x01F001F0,0x5F91FFF7,0x72FFDBF1
.word 0xB771591B,0xBDB5F79B,0xF31998E9,0xFFFFFBD7,0x479811F2,0xB7F057DA,0xABF667F1,0xA1F72DF0
.word 0xF6A1F2FF,0xF065F099,0xB411F043,0xF091F1ED,0x01F0FF01,0x01F001F0,0x01F001F0,0x99FBFF39
.word 0xB6FFDBF1,0xFAE5F907,0xBD7BB11B,0xD0D37BCB,0xFFA5F15F,0x2FDE71F1,0x79F1337E,0x21F081F6
.word 0x93F6A9FA,0xF051F0FF,0xF011F011,0xF0FFFB67,0xF001F001,0x01F0FF01,0x01F001F0,0x9F9F01F0
.word 0xE9FBDB51,0xF3FF17F1,0xF3E5F123,0xD21F9CBD,0xF43FF101,0xFF23D423,0x4BF063F8,0x11F243FE
.word 0xF9DE01B1,0x01F1D9F4,0xF001F0FF,0xF101F223,0xF001F0FF,0xF001F001,0x01F0FF01,0xFF5901F0
.word 0x4FF5EDB3,0xE1DFA9DF,0xDDFF1DFC,0xB321D4BD,0xF2E7BDAB,0xF181F463,0xFF5BFCD3,0x0FF07DF3
.word 0x11F06BF0,0xCBF119FD,0x19F115F0,0xF721F0FF,0xF001F0FF,0xF001F001,0xF001F001,0xFF5DFF01
.word 0xB7F0C9DF,0x25F0DDF3,0x0FF2E9F0,0xF1FF33F8,0x96F593B5,0xF049F25D,0xF317B60F,0xFFE7F58B
.word 0x05FB51F2,0xCFF10FFF,0x317DF590,0x41D88FD6,0xF0FFF1FF,0xF001F001,0xF001F001,0x7501F001
.word 0xE5F7FFFF,0x2DF3F5B1,0x25F027F2,0x37F201F2,0xF0FF41F1,0xB1F1F135,0xF5F9F5E3,0xD407F6C7
.word 0xFF61F243,0x9FF0F991,0x99D6BDF0,0x51373BF1,0x91F127B1,0xF001F0FF,0xF001F001,0xF001F001
.word 0xB3FF9301,0x09F6FF9D,0xCB99E5F0,0x1BF121F1,0x25F043DA,0xFBFF01F2,0xF561D1E1,0xF011F085
.word 0xFC11F00B,0xFF13F231,0x03F2D3F0,0x21F0E7D8,0x91F15D98,0x01F001F0,0xF001F0FF,0xF001F001
.word 0xF9FF1701,0xD2DFFBF5,0x33FAFC05,0xF9F09FF1,0x13D55DFA,0xBDEF6F73,0xF0553FE4,0xF761706D
.word 0x21CD1FDE,0xE7393284,0xBB5F8F31,0x3D10E739,0xFAD24394,0xE7F7BD0F,0xD1D91F9C,0xFBF8CE9F
.word 0xB9CE5B18,0xAF944D30,0x61B53372,0x50E53FD6,0x18AD6B05,0x3F1732E3,0x1150AD6B,0x21F9311F
.word 0x91F14D98,0xF0FF01F0,0xF001F001,0xF001F001,0xF3FF1B01,0xFE11F147,0xD5F7DDF1,0x7FF1D9F1
.word 0x1BF033F7,0x01EFD519,0x5AC631BD,0xF5DAD6EB,0x95D381AB,0x800094A5,0xAB5B94A5,0x63DEF70C
.word 0x948FF38C,0x38800003,0xF5F3CE73,0xFB5BA9DE,0x1800CA52,0xFCE31880,0x5AA3320F,0x801000EB
.word 0x4534BDEF,0x8000B5AD,0xF7884200,0x29F7BDDE,0x94A520A5,0xEF7B891E,0x7F5A8C63,0xD0DDDAEB
.word 0xF091F101,0xF001F001,0xCF01F001,0x01F001F0,0x4DFFFC1F,0xDFF365FF,0xFDFC9FF7,0x9719F0FB
.word 0x700BF701,0x9457115D,0x2FF4C2D2,0xF39C43F3,0x79119CE7,0x3BB543AD,0xA5EB5A9D,0x9879F494
.word 0x5930FF8D,0xF9D6CFFB,0xD533E373,0xA71453F2,0x3AC9FF31,0xE78D146D,0x5213109C,0xFF81F0CA
.word 0xA33A13FE,0x01F091F1,0x01F001F0,0x01F001F0,0x3901F0FF,0xF601D2FF,0xF7095B07,0xF2857D31
.word 0x29F2F229,0x2DF44BB0,0xE318B73B,0x127BBD55,0x159CE7EF,0x3494A5E3,0xAD1C6B0B,0xF113B5AD
.word 0xBF316915,0x18099CE7,0x73B18CE3,0x1E9CE7D5,0xDAD60815,0xE7139CE7,0x1EA5C631,0x30C21094
.word 0x14291E41,0x7333162D,0xE739CE1C,0x39125930,0xAD6B5710,0x3169309F,0x16B131C6,0x135B1641
.word 0x3EFB1CFF,0x0B10C631,0xFF516972,0x5B362F50,0x7B800100,0xA58421EF,0xFF9F7094,0xC7B255F3
.word 0x01F091F1,0x01F001F0,0x01F001F0,0x1701F0FF,0xF2D5F2FF,0xD325D003,0xF80BF8CF,0x1BF0F23B
.word 0x653E75F0,0x8000F331,0x406BCD13,0xA54915AD,0x5A842194,0x8C6300EB,0x8C638000,0x2933EF7B
.word 0x379331A5,0x36E739CF,0x937B1505,0xD294FF31,0xD2941718,0xA1150F38,0xEF111092,0xB5B133BD
.word 0x63211CD6,0x0F108C66,0xD6B5C317,0xE7175730,0x219C18E7,0x10111C84,0x39F39C77,0x6B52E743
.word 0x8421CA52,0x61188D16,0x714730F3,0x17E373FF,0x52E739F7,0xFF951429,0x0FFA559F,0x01F0FFF1
.word 0x01F001F0,0x01F001F0,0xDB01F0FF,0xDA01F0FF,0xF0CDF5CD,0xFB037223,0x19B8F93F,0x235E4DF0
.word 0xA511FF13,0x0312DAD6,0x39731490,0x630D3AE7,0xE7B9CE8C,0xFF13A1BB,0x8C638917,0xFF536D17
.word 0x3ACC4134,0x9C851F11,0x373910F3,0x0FD6B5FF,0xCE73F7BD,0x3F56E711,0xAB111D10,0x9C413A9E
.word 0x3F1D10F3,0x1A511ABD,0xA510295D,0x2137B18C,0x8C63AD6B,0x31317DFF,0x192553FF,0x1A6D30F7
.word 0x56051ABF,0x1FD1FF1D,0x01F0FFF1,0x01F001F0,0x01F001F0,0xB7FF01F0,0xF0C7F1FF,0xB3CFBC01
.word 0xB8D19DF9,0x3FA5BF47,0x0D1BEF7B,0x13F433D0,0xA511BD31,0x379F8D31,0x19884241,0x7BC55169
.word 0x3CFF314B,0xFB15FF0B,0x41368117,0x111CE713,0xE111E737,0x31FCD311,0x3CDD35FF,0x3757302D
.word 0xEF2F32C7,0xE331E7BD,0x3D10FF51,0x2139BDEF,0x2F7F591C,0x78A31CCF,0x3894A51B,0x149B707D
.word 0xFF51BB45,0xFFFD0351,0x01F001F0,0x01F001F0,0x01F001F0,0xF2FFB5FF,0xF801F003,0xB899FD0D
.word 0x31B11D0B,0x03599FF1,0x0FB0EB5A,0x173625F8,0xFF19F713,0x399D35CF,0x1B842141,0x5BFF71B7
.word 0x9FFF178D,0xCE73213C,0xFF37071A,0xFF51191E,0x63302B38,0x5AD1158C,0x42C63159,0x9B99C888
.word 0xF39C1D30,0xE3182B18,0x42BD1CEF,0x1E753C88,0xE7FF1B47,0x5738FF9C,0x6D1C971E,0xA35E0F51
.word 0x7F10B31E,0x38FFF919,0x7A733281,0xBE25741D,0xF091F177,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x85D1FF55,0xEB93B5F9,0x9D33F8FF,0xF349BD39,0xDB0BFBDD,0x1B591F27,0xB5159243,0x051E8C63
.word 0xD73BAD6B,0x17847F21,0x35675853,0x30251ED7,0x39831D59,0x0118FCE7,0xBF5BFF39,0x1F1CFF11
.word 0xEB5AE139,0x1B884233,0xD62916AB,0x161D32DA,0x2F32E70D,0xC91B7F1A,0xFF39DEF7,0x1118F737
.word 0x735F1E9F,0x1D057BCE,0x75A73AFF,0x3F4B56ED,0xAB18A529,0x1B91F3F0,0x01F0FFFB,0xF0FF01F0
.word 0xF001F001,0xF701F001,0xF1AFF5FF,0xFE07F8CD,0x2FF801FA,0x57B665F4,0x731D1D72,0x046B7B1B
.word 0xD6EF7BAD,0x29B13BDA,0x491FFFA5,0x011AFF19,0x15184552,0xB719B39B,0x39FF9D17,0x35CB1BFF
.word 0x1A4B1EE3,0x1A4B1A3B,0x27971F13,0x5950D294,0x5730E318,0x313ABB1D,0x3BE31827,0x3C94A5ED
.word 0x1F411205,0x7D1AF3DF,0x235CEF7B,0x94A54736,0xF7170958,0x16B330FF,0xB1DFF439,0xF091F11D
.word 0xF001F001,0x01F0FF01,0x01F001F0,0xD1F1FF51,0xC155B157,0xF0FFB159,0xF801F2CD,0x73F5F1ED
.word 0xF8659017,0xFF2BD243,0x97FF49F2,0x0FF059FC,0xABD89BB0,0xFDD8DFF6,0xF131F3FF,0xBB51F0EB
.word 0xF12B194D,0xF001F091,0x01F0FF01,0x01F001F0,0xFF7301F0,0x6D13B9B9,0xF3FFFDB5,0xF27DF1A9
.word 0xF205B441,0xB271F065,0xFF6DF475,0x01F099F6,0x1BF05DFE,0xE7B0B196,0x05D72FF0,0xF14FF0FF
.word 0xB101F005,0xF0FFF103,0xF001F001,0x01F0FF01,0x01F001F0,0x9DF0FFF1,0x8DD15BF1,0xF0FF0FF2
.word 0xF145963D,0xF221F683,0xD19DB337,0xFF99D3F3,0x99F0D7D3,0x8B99E3B1,0xB11CA1FF,0xF959B19A
.word 0xD0F3F8FF,0xF381F2B5,0xF0FFF505,0xF001F001,0x01F0FF01,0x01F001F0,0xE977FF71,0xDBF105F4
.word 0xF1FF01D2,0xF0A3F1DD,0xF383D323,0xF017F071,0xFF75F639,0x8BF081F0,0x03B29FD4,0x9BB6A39A
.word 0xEFF4D3F1,0xF429F6FF,0xF1039D47,0xF001F091,0xF001F001,0x01F0FF01,0xFF1901F0,0xC1F7EBB9
.word 0x23F059F1,0xF0FF9FF1,0xF09DF101,0xF101F00B,0xF0C791BB,0xFF2BF03B,0x75F201F2,0x65F613F4
.word 0x7DF2B594,0x49F5DBD9,0x1E1FF8FF,0xF091F1C3,0xF001F001,0xF001F001,0x01F09F01,0x25F1FC1F
.word 0xC1F70FB9,0x01F07BF1,0xF001F0FF,0xF079F061,0xF019F01B,0xF019F075,0xA5D2FFB7,0x035647F0
.word 0xA37ED3F1,0x11B04DFA,0x9EFF21B0,0x5F01F0E5,0xF091F103,0xF001F001,0xFF01F001,0x01F001F0
.word 0x0BF1FF1D,0x49F13DF1,0x15F001F0,0xF33BF0FF,0xF00DF0F7,0xF043F063,0xF01BF001,0xE9F3FF0F
.word 0xC3F18FF1,0x01F001F0,0x01F001F0,0xF1FF01F0,0xF001F0FF,0xF001F001,0xF001F001,0xFFFF5301
.word 0xC5F4D1F1,0x53F10BD0,0x01F017F0,0x29FACBF1,0xF025F0FF,0xF38FF70F,0xF001F087,0xF001F001
.word 0x01F0FF01,0x01F001F0,0x01F001F0,0x01F0FFF1,0xF0FF01F0,0xF001F001,0xFB01F001,0xF2D3F8FF
.word 0xFF35F70F,0x15F927F0,0xCFF3BFF1,0x75F535F0,0x49F17B9B,0xF019F0FF,0xF001F001,0xF001F001
.word 0xF001F001,0x01F0FF01,0xFFF101F0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF10D1001,0xF205B03F
.word 0xF78DF117,0xFFA9F11B,0x3DF02FD0,0x99F001F0,0x01F001F0,0x01F001F0,0xF059F0FF,0xF001F001
.word 0xF001F001,0xF101F001,0x01F0FFFF,0x01F001F0,0x01F001F0,0xFFFB01F0,0xF3FF0571,0xF29BFF7B
.word 0x5F3FB903,0xF05FF10D,0xFF01F001,0x45F001F0,0xBFF019F0,0x83F22FF0,0x01F045F0,0xF001F0FF
.word 0xF001F001,0xF101F001,0xF001F0FF,0x01F0FF01,0x01F001F0,0xFF7301F0,0xDFD52D91,0xF0FFEBF5
.word 0xF233B21B,0xB15FB025,0x915F94A3,0xFF81D2A3,0xB5D637DD,0x11B07372,0x81D4D7B1,0x01F079B0
.word 0xF001F0FF,0xF001F001,0xF101F001,0xF001F0FF,0x01F0FF01,0x01F001F0,0xFFF701F0,0x19B13D71
.word 0xF0FF75F1,0xF001F011,0xB033F001,0xB63FF277,0xFFD3937B,0xDBF339D0,0x77F1D3F8,0x09F401F0
.word 0x01F001F0,0xF001F0FF,0xF101F001,0xF001F0FF,0xF001F001,0x01F0FF01,0xFFF701F0,0xCDD7B3F7
.word 0x81DB09F0,0xF0FFDBF1,0xF1E9D12F,0xF0E9D1C9,0xD019F487,0xFF65F10F,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF0FFF1FF,0xF001F001,0xF001F001,0xF101F001,0x2FF5FFFF,0x89F197B3
.word 0x05D2EDF1,0x4BF0EBF1,0xD1FF57F0,0xF2E3F5BD,0xF3F9D347,0xF0D5F3CD,0xFF01F053,0x15F04BF2
.word 0x01F001F0,0xFFF101F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF5FFD701,0xF187F56F,0x63F5FFAB
.word 0xCFF5339C,0xAFF519F0,0x69F05DF2,0xFAFF37F6,0xF405B06D,0xF0C3F12D,0xF0F5F101,0xFF01F013
.word 0x01F001F0,0x01F0FFF1,0x01F001F0,0x01F001F0,0xF301F0FF,0xF63BF3FF,0xF0EDF101,0xF739F217
.word 0x37F0FFB3,0x15F017F2,0x15F063F0,0x0DF2AFF2,0xF1FFEDF3,0xF021F4DF,0xF055F41D,0xF001F001
.word 0xFFFFF101,0x01F001F0,0x01F001F0,0x01F001F0,0x65F7FFF1,0xF19DFBFF,0xF001F097,0xF111F44B
.word 0xF28BFAC1,0x59F0FF0D,0x05F231FA,0x0FFEBBF0,0x3BF2CDFE,0xB8FF4DDC,0xF201F079,0xF0FFF131
.word 0xF001F001,0xFF01F001,0x01F001F0,0x37F501F0,0x09F02DF3,0x99F30BF0,0xF101F0FF,0xF231F0AF
.word 0xF01BF00F,0xF095F045,0x29FAFF17,0xE1D1F5F4,0x9DF855FE,0x49F2CBF2,0x50FF3DF4,0xF091F115
.word 0xF001F001,0xF001F001,0xFF01F001,0xB3F9FF5D,0x95F1DFF0,0x01F0FBF0,0x13F0BDF1,0xF013F0FF
.word 0xF05DF16D,0xB12DF02D,0xF071F0BF,0x01F0FF01,0x01F001F0,0x01F001F0,0xF11A9FFA,0xF0FF91F1
.word 0xF001F001,0xF001F001,0x5101F001,0xFF01F0FF,0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0CF01,0xEF7BEDB1,0x77F213F0,0x01F0FFF1
.word 0xF001F0FF,0xF001F001,0xF101F001,0xF001F0FF,0x01F0FFD5,0x01F001F0,0x17F03DF0,0x01F001F0
.word 0xF0FF01F0,0xF053F001,0x500FF019,0x5001100D,0xFF11F009,0x2F700370,0x1DB05330,0x87F02BF0
.word 0x01F0FFF1,0xF001F0FF,0xF001F001,0x5501F001,0xB0A7B0FF,0xC5F0FFDF,0x2BD021F0,0x43F01371
.word 0x3BF15791,0xD0FF83B1,0xB0AB713D,0xF0BDF031,0xD091F191,0xE713F0D9,0x01F001F0,0xEB5A01F0
.word 0x0FB113F0,0xF0FFFFF1,0xF001F001,0xF001F001,0xF101F001,0x3FBD72FF,0x0110EB5A,0xCFF0CDB0
.word 0x23F001F0,0xF0FF01F0,0xF001F001,0xF001F001,0xD0815001,0xFFCBF085,0xB93019F0,0x0531F7B0
.word 0x0B703D30,0x6D501370,0xF025B0FF,0xF333B02B,0xF17B3405,0xF001F091,0x01F0FF01,0x01F001F0
.word 0xFF9501F0,0x43D147F1,0xF0FF07F1,0xF11B9011,0xF01BF169,0xD053F101,0xFF8DF06F,0x01F07FF1
.word 0x3BF001F0,0x0DF011F0,0x13F0C9F0,0xF215F0FF,0xF0FFF7A1,0xF001F001,0xF001F001,0x01F0FF01
.word 0xEFB5FFF1,0x19B365B1,0xF3F03393,0xF0FFC1F1,0xF029F029,0xF001F001,0xF001F001,0xFF01F001
.word 0x01F001F0,0x01F001F0,0xCBF001F0,0x75B621F0,0xF091F1FF,0xF001F001,0xF001F001,0x5D01F001
.word 0xA198FFFF,0xF7F1EDD3,0x01F0E5F0,0x01F001F0,0xF0FF39F1,0xF001F001,0xF001F001,0xF001F001
.word 0xFF01F07F,0x01F001F0,0x01F001F0,0x11566DF0,0x01F091F1,0xF001F0F9,0xF001F001,0x1F01F001
.word 0xFF3799FC,0xB5F005DB,0x01F015F0,0x01F001F0,0x01F06FF1,0xF001F0FF,0xF001F001,0xF001F001
.word 0xF001F001,0x01F0FF01,0x01F001F0,0x47B801F0,0x01F091F1,0xF0FF01F0,0xF001F001,0x3101F001
.word 0xF495D8FF,0xFF2BB907,0x01F025F9,0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001
.word 0xF001F001,0xF001F001,0x01F0FF01,0x155029F1,0x01F091F1,0x01F001F0,0xF0FF01F0,0x1301F001
.word 0xF835DDFF,0xF0B7F00F,0xFF01F001,0x01F001F0,0x29F101F0,0x01F001F0,0x01F001F0,0xF001F0FF
.word 0xF001F001,0xF001F001,0xF001F001,0xFFF1FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xFFFFFF79
.word 0xF6CBBF45,0xF001F00D,0xF001F001,0xFF01F001,0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF001F0FF,0xF001F001,0xFBDFF201,0xF001F0FF,0x01F0FF01,0x01F001F0,0xFFD701F0,0xADFEE791
.word 0xF0FF07F4,0xF001F001,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x95EFF1CF,0x70F7BD5B,0xF091F101,0xFF01F001,0x01F001F0,0x01F001F0,0x01F0FF97
.word 0x179E1B7C,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xD7E701F0,0x71ED914B,0x30FBDEF9,0xF091F101,0x01F0FF01,0x01F001F0,0x01F001F0
.word 0x997EFFF1,0x92FFFDF3,0xF0F7F01D,0xF001F001,0xF001F001,0xFE01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x1F5A01F0,0xD1E739EB,0xF1DDF3EF,0xF101F0EB,0x01F0FFFF,0x01F001F0,0x01F001F0
.word 0xFFF101F0,0xF0FF01F2,0xF001F201,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xB7DFE591,0xD1EFF1FF,0x51F7F1EF,0x54FD13F3,0xF091F101,0x01F0FF01,0x01F001F0
.word 0x01F001F0,0x01F0FFF1,0xF2FF0BF2,0xF001F003,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0
.word 0x01F001F0,0x05BBEFD1,0xC751EBF1,0xD1CF91FF,0x751910E7,0x90F931F1,0xF091F137,0x01F0FF01
.word 0x01F001F0,0x01F001F0,0x01F0FFF1,0xF2FF01F0,0xF001F003,0xF001F001,0xF001F001,0xFF01F001
.word 0x01F001F0,0xDBF301F0,0x01F0B9F7,0xF571BF91,0x91DD91FF,0xF00192F1,0xF0FFF92D,0xF001F001
.word 0x01F0FF01,0x01F001F0,0x01F0FFF1,0x11F0E151,0xF1FF25F0,0xF001F051,0xF001F001,0xF001F001
.word 0x9F01F001,0xE739DBF3,0xE3FAB737,0xF5F1EDF1,0xF2FFD9F3,0xD1FF9117,0xF155F0F9,0xF001F0FF
.word 0xFF01F001,0x01F001F0,0xFFF101F0,0x11F0C991,0x23F027F0,0xF001F0FF,0xF001F001,0xF001F001
.word 0xD501F001,0xA579FFC7,0x01F0D9F3,0xB9B5C3F1,0x01F001F0,0xF1FF01F0,0xF0FFF1F9,0xF001F001
.word 0xF001F001,0xFF01F001,0x01F0FFF1,0xF15301F0,0x11F24B91,0x8FF11330,0xF001F0FF,0xF001F001
.word 0xF9E7F101,0x1F93FBA1,0xF1F1FF6F,0xE3F1A793,0x01F001F0,0x01F001F0,0xF1FF01F0,0xF001F0FF
.word 0xF001F001,0xF001F001,0xFF01F001,0xF5F3C3F1,0xFFF1FFF1,0x8FF13F97,0x01F001F0,0xF001F0FF
.word 0x3201F001,0xF1EFF171,0xF001F069,0x01F0FF01,0x01F001F0,0x01F001F0,0x273C79F2,0xF0FF91F1
.word 0xF001F001,0xF001F001,0x9101F001,0xFF4991FF,0xF9F5F375,0x19F01B90,0x01F02BB2,0x01F001F0
.word 0xF389FBFF,0xF0B9F7DD,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x23FCF3F1,0x01F0FFF1
.word 0xF0FF01F0,0xF001F001,0xF301F001,0xF0D7F3FF,0xFF01D21B,0x23542772,0x01F005F4,0x01F0EDF1
.word 0xBDF7EDB1,0xF701F0FF,0xF001F06D,0xF001F001,0xF001F001,0x01F0FF01,0xFFF1EFF1,0x01F001F0
.word 0x01F001F0,0xF0FF01F0,0xF701F001,0xB3EFF9BD,0xF11FF277,0xFF0F90FB,0x0BF0E9F1,0xEDF185FD
.word 0xEFF101F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF187F001,0xF101F0F1,0x01F0FFFF,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF3FFDFF5,0xF1CDD3D5,0xD20392FD,0xF009F413,0xFFCDF54B,0x01F001F0
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xBC01F0FF,0xF0D9F11D,0xF101F001,0xF001F0FF,0x01F0FF01
.word 0x01F001F0,0xFF3501F0,0xC1D7A993,0xFBFF0390,0xF0DBF1DB,0xB12FF223,0xF0EFF1ED,0xFF01F001
.word 0x01F001F0,0x01F001F0,0x9B5B01F0,0xEDD397F0,0xF0CBF1FF,0xF101F001,0xF001F0FF,0xF001F001
.word 0x01F0FF01,0x01F001F0,0xC5F5FBF9,0xEFF1CDF3,0xFBFF03F4,0xF053F193,0xF001F001,0xF001F001
.word 0xF801F001,0xE9F1DFF1,0xD5F501F0,0xFBDE01F0,0xF0FF7FFF,0xF001F013,0xF0FFF133,0xF001F001
.word 0x01F0FF01,0x01F001F0,0xB5F3FF99,0xF1B301F0,0xD5FFE5B1,0xF0DBF3C3,0xF001F001,0xF001F001
.word 0xFF01F001,0xFDD101F0,0xF3F17DF4,0x01F001F0,0x01F001F0,0xFF1F329F,0x300110FF,0x10333207
.word 0xFF91F111,0x01F001F0,0x01F001F0,0x01F001F0,0xEFD5FF17,0xF3DDF1FF,0xF0BFF5CF,0xF001F001
.word 0xF001F001,0x01F0FF01,0xC7F301F0,0x8B726F54,0xF1F1B5F0,0xF0FF01F0,0xF301F001,0x71DF71D5
.word 0xF301F0EF,0xFF01F0FF,0x01F001F0,0x01F001F0,0xFF7B01F0,0xB1F51DF1,0xF001F0FF,0xF001F001
.word 0xF001F001,0x9101F001,0x0BD0FFD1,0x01F0B9F0,0xEDF1F3F1,0x01F001F0,0xB1FF01F0,0xF107D2EB
.word 0x722D3AF9,0xF091F1B5,0xF301F001,0x01F001F0,0x01F001F0,0x65F1FC1F,0xF0FF01F0,0xF001F001
.word 0xF001F001,0xF301F001,0xFF8F92D1,0x01F0EDF1,0xF1F1EFF1,0x01F001F0,0xF3F101F0,0xF00790FF
.word 0xF0EBD101,0xF0FFF101,0xF001F001,0x01F0FF01,0x01F001F0,0x01F0FFF1,0x01F001F0,0xF0FF01F0
.word 0x7101F001,0x906B74A3,0xF001F013,0xFF01F001,0x93F1A7FB,0x01F001F0,0xC33701F0,0xE971EFF9
.word 0xF0F1F1FF,0xF0FFF101,0xF001F001,0xF001F001,0x01F0FF01,0x91F001F0,0x01F001F0,0x7DF701F0
.word 0xB5FFEDF1,0xF0E3F1B3,0x9AD99101,0xF341FE5F,0xFF01F0E3,0x01F001F0,0x01F0C3F5,0x09F1F191
.word 0x01F001F0,0xF0FFF1FF,0xF001F001,0xF001F001,0xF101F001,0x01F0FFFF,0x01F001F0,0xB9F3F1F1
.word 0x01F00FBC,0x31FF01F0,0xFA579CEB,0xF1DB757D,0xF001F095,0xFF01F001,0x01F001F0,0x01F0F3F0
.word 0x01F001F0,0x01F0FFF1,0xF001F0FF,0xF001F001,0xF101F001,0xF701F0FF,0x119AFF81,0x01F0D5F1
.word 0xCBF301F0,0x01F0EBB1,0xF1FF9BDA,0xF001F0F3,0xF301F001,0xF1E9F1DD,0xFF01F0ED,0x01F001F0
.word 0xFFF101F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xDBFFF101,0xF36FB1E9,0xF001F0C3,0x01F0FF01
.word 0x01F0D9F1,0xD5D5F3B1,0x01F0F7F1,0xF0FF01F0,0xF1E9F101,0xF001F095,0xF001F001,0xFF01F001
.word 0x01F0FFF1,0x01F001F0,0x01F001F0,0x01F001F0,0xF0A9F1FC,0xF0BBF301,0x50E1F101,0xFFEB5A09
.word 0x01500750,0xDF7BEFF1,0x01F0E1F3,0x01F001F0,0xF501F0FF,0xF001F0C3,0xF001F001,0xF001F001
.word 0xB7BEFF01,0x91F12B77,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF1FFF101,0xF18397E9,0x71E191E5
.word 0xFFF311F1,0xF5D1EF71,0xF3F1B7F9,0x01F001F0,0x01F001F0,0xF081F1FF,0xF001F001,0xF017F701
.word 0x7211900B,0x17B9FFCF,0x91F1FBDA,0x01F001F0,0x01F001F0,0xF0FF01F0,0x31FF7101,0x73DFF1DB
.word 0xF00590BD,0xFFE57101,0xB5F92990,0x01F0EFF1,0x01F001F0,0xA5F101F0,0xF0A1F1FF,0x9E01F001
.word 0xF043F095,0xB0299759,0x01F0FF0D,0x91F15FF3,0x01F001F0,0x01F001F0,0xF09F01F0,0xF3FC1F01
.word 0x91B135B9,0xB001F0CF,0xEDF1FF1D,0xC5F72DF1,0x01F001F0,0xEB9101F0,0xF1FFF3F1,0xF001F09D
.word 0xB337F001,0xFA11B0B7,0xFF1BF991,0xF1F601F0,0x91F1E53C,0x01F001F0,0x01F001F0,0xF001F0FF
.word 0x73FF1101,0xF1A995D9,0xD8B9F7EB,0x49F1FF09,0x01F0B9F1,0xEDF101F0,0xE5F101F0,0xF0FFB1F3
.word 0xB119F029,0xF0E9FAEF,0xF11DF011,0xFF05F0EB,0x513701F0,0x01F091F1,0x01F001F0,0x01F001F0
.word 0x3101F0FF,0xF1E5F1FF,0xF3E7F1E9,0x5B01F0D5,0x2150FF5F,0xE7F127F0,0xABF1EFF1,0xB5F50BF0
.word 0xD0FFF1F1,0xD7F1910D,0xF0E5F19F,0xF0D9F101,0xFF01F013,0x01F0FFF1,0x01F001F0,0x01F001F0
.word 0xFFF101F0,0xF1E3F1FF,0xB1EDF1E7,0x91A553B1,0xF05F7DC3,0x0D52FF01,0xBDF101F0,0x1BF09D93
.word 0x79B90DF0,0xBEFF7DB9,0xFAEBF1D3,0xF1F55AFB,0xF1D993EF,0xFF01F0F3,0xFFF101F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF10B30FF,0x91E7B175,0x91B1B1DF,0xF2E7F1BF,0xDBF3FF25,0xA3F1EDF1
.word 0x1F90DB93,0x57DB15D0,0xF5FFD3F1,0xF1CDFEC1,0xF001F0C7,0xF001F001,0xFF01F001,0x01F0FFF1
.word 0x01F001F0,0x01F001F0,0x095001F0,0xB39BF3FF,0xD101F0C9,0xF003D4F5,0x9BFBDE01,0x9DB3FF35
.word 0x01F0C3F1,0x01F0B1F3,0xDFF301F0,0x90FFC3B3,0xF0A5F111,0xF001F001,0xF501F001,0xFF91F167
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xC3F1FFD3,0xF001F0FF,0xFE01F001,0xF9D5F1F3,0xF18FF56F
.word 0x17F2FFF5,0x01F001F0,0x01F0DBF3,0x01F0FDF1,0xF0FF1BFF,0xF017F001,0xF12971C9,0xF001F091
.word 0xFF01F001,0x01F001F0,0xFFF501F0,0x01F001F0,0x01F0D3D3,0xF001F0FF,0xF0C7F101,0xF023F001
.word 0xF077FB01,0x01F0FF01,0x13F0B3F1,0x2DFF01F0,0x1DFD3750,0xF79FEBF1,0xF1FBDE5D,0xF001F091
.word 0xF001F001,0x01F0FF01,0xFFF101F0,0xBFD3DFF1,0x01F001F0,0xF0FF01F0,0xF001F001,0xF301F001
.word 0xF0B5F3CF,0xFF01F001,0x07F201F0,0x199F01F0,0xD9F6EDF1,0x01D01FF9,0xF091F1FE,0xF001F001
.word 0xF001F001,0x1F01F001,0xDDFEFC7F,0x01F067F1,0x01F001F0,0x01F001F0,0xF101F0FF,0xF17B9EE1
.word 0xF001F0ED,0xF001F001,0x01B2FF01,0x0990099F,0x89BAEFF1,0x01F0E3D3,0xF0FFFFF1,0xF001F001
.word 0xF001F001,0xF001F001,0xFF73F101,0x01F001F0,0x01F001F0,0x09F701F0,0x01F097F7,0xF001F0FF
.word 0xF101F001,0xB00BF0D3,0x51E7B111,0xF1F1FFF3,0xEDF1E7F1,0x0BD049DB,0x91F12D7B,0xF0FF01F0
.word 0xF001F001,0xF001F001,0xF0FFF101,0xFF01F001,0xE3F101F0,0x01F03F9F,0x01F0C7F3,0x01F001F0
.word 0xF101F0FF,0x759DF7DB,0xD00590C3,0xF5D1F599,0x01F0FFCB,0x55DBFB9E,0x49105BDB,0x01F091F1
.word 0xF0FF01F0,0xF001F001,0xF101F001,0xF001F0FF,0xFFC3F101,0x81F14BBD,0x01F001F0,0x3DF001F0
.word 0xBF9317F0,0xF5E9D1FF,0xF7ED91C1,0xF5DFF3C1,0xFEE3D1CB,0xE9F1FFFF,0xFFFB13F0,0x01F001F0
.word 0x01F001F0,0xF0FF01F0,0x5FFFF101,0xF119BF07,0xF081F175,0xFF67D301,0x4DF70BD0,0xABF369B5
.word 0xA1B5AF91,0xDFF3B3F5,0xF1E3F3FF,0xF101F0ED,0xFFC7D5EF,0xF001F033,0x65D0FF01,0x01F091F1
.word 0x01F001F0,0x01F001F0,0x1F3F01F0,0xF0B3F1FC,0xB751B101,0xD90BF029,0xB1D1FF2F,0x39F037B0
.word 0x01F001F0,0x01F001F0,0xFFFFD1D5,0xD7BDF77F,0xF0B7F3BB,0xF001F00F,0xFF055801,0xFFF9F99D
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xB10950FF,0xF341F1A9,0xF081F34F,0xF001F001,0x01F0FF2F
.word 0x01F001F0,0xADF001F0,0xDBF3EDF1,0xF3FFD393,0xF00FF0C5,0xF001F001,0xFB01F061,0xFF01F0FF
.word 0x01F001F0,0x01F001F0,0x01F001F0,0x01F045F1,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001
.word 0xF1F1FF01,0xC7F1A3B8,0xE1F1E5B3,0x01F001F0,0xF1FF01F0,0xF001F0ED,0xF0FFF101,0xF001F001
.word 0xFF01F001,0x01F001F0,0x01F0FFF1,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF1EFF101
.word 0xF96BFBED,0x01F0FFA3,0x01F001F0,0xEFF1E7D1,0x01F001F0,0xF1FF01F0,0xF001F0FF,0xF001F001
.word 0xF001F001,0xFCFFF101,0x01F001F0,0x01F001F0,0x9F5501F0,0x393FE739,0xF015F0E7,0xF1F1F101
.word 0x9B79F3F1,0xBBF1FF8B,0x01F001F0,0xEDF1EFF1,0x01F001F0,0xF0FF01F0,0xF1255E01,0xF001F091
.word 0xF001F001,0xFF01F001,0xFFF101F0,0xB93101F0,0x19F013F0,0xFBF101F0,0x720752FF,0xD141B00B
.word 0xB193F1ED,0xF0B5F193,0x01F0FF01,0xE7F1CFF9,0x01F001F0,0x01F001F0,0xFDFF41FC,0xF001F0FF
.word 0xF001F001,0xF001F001,0xFFFFF101,0x01F001F0,0xF9F101F0,0xF35301F0,0xDDF3F9F3,0x7BF1F1FF
.word 0xF0C59737,0xF001F001,0xF0EDFB01,0x01F0FF01,0x01F001F0,0xE9F101F0,0xFFF197F4,0xF0FF01F0
.word 0xF001F001,0xF001F001,0xF1FFF101,0xFF01F0D7,0x2D3001F0,0xE7513130,0x49900770,0xEDF18BFD
.word 0xF12DF1FF,0xF001F033,0xF03DF235,0xF001F001,0x01F0FF01,0x75F0E3F1,0x55FCFD91,0x01F0FFF1
.word 0xF0FF01F0,0xF001F001,0xF001F001,0xB2BFB101,0xFFC99101,0x19D0DDF1,0xE9F1EBF1,0x01F0ABF1
.word 0x01F001F0,0xF349F0FF,0xF001F0D7,0xF001F001,0xD6E3B101,0x1BF0FF2D,0x177001F0,0xFFF909B0
.word 0x01F001F0,0xF0FF01F0,0xF001F001,0x91FF5301,0xF1D9D1C1,0xFF1FF4E3,0xB557D71F,0x05F1B977
.word 0x01F001F0,0x01F001F0,0xF0FBF9FF,0xF001F001,0xF3ADF501,0xD875B6CF,0x6B7CFF73,0x09D49DF0
.word 0xFFF325F0,0x01F001F0,0xF0FF01F0,0xF001F001,0x55FF7301,0xF3F7F5BD,0xFFD7F3CF,0xEFF16F3F
.word 0x01F001F0,0x01F001F0,0x01F0C7F5,0xD101F0FF,0xF7AD93D9,0xF465B097,0xF027F055,0x5F90F35B
.word 0x059059F0,0xF39C2B91,0x01F091F1,0xF001F0F9,0xF001F001,0x1F01F001,0xFFD9F1FC,0xCFF301F0
.word 0x01F001F0,0x01F001F0,0xC1F101F0,0xF101F0FF,0xF60DF07D,0xF50FF061,0xD323F099,0x3DF2FFBF
.word 0xE97101F0,0x05503731,0xFFF101F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF30D1001,0xFF01F0BB
.word 0x01F001F0,0x01F001F0,0xEFF1CFF3,0x23F001F0,0xF06BF3FF,0xF001F001,0xB8E7F101,0xF023F047
.word 0xE551FF01,0x01F00535,0x533301F0,0x91F16F53,0xF0FF01F0,0xF001F001,0xF001F001,0xF0FF1101
.word 0xFF01F001,0x01F001F0,0x43F3E1F1,0x2DFD47F3,0x01F03FF0,0xF001F0FF,0xF501F031,0xF013F0D9
.word 0xF1DB9101,0x01F0FFE3,0xE791E171,0xFFF101F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF0FFF101
.word 0xF001F001,0xFF3FF101,0x29F033D9,0x01F001F0,0x01F001F0,0x01F001F0,0xF1D999FF,0xB1C9F3F5
.word 0xD1EF91E5,0x33DF51FB,0xD153FFCB,0x1D50F191,0x73752DF9,0x01F091F1,0xF0FF01F0,0xF001F001
.word 0xF101F001,0xF101F0FF,0xFF13F031,0x01F00FF0,0x01F001F0,0x01F001F0,0x89F001F0,0xF08DF0FF
.word 0xF38B9101,0x7101F0BD,0xF0F191E1,0x31F9FF25,0xFD769FF0,0x01F091F1,0x01F001F0,0xF0FF01F0
.word 0xF101F001,0xF0CDF1FF,0xF001F001,0xFF01F001,0x01F001F0,0x01F001F0,0x15F0DDF3,0x01F0CFB3
.word 0x77C5D3FF,0x91D37393,0xF137F0E7,0xF0BFFADF,0x01F0FF01,0x01F091F1,0x01F001F0,0x01F001F0
.word 0xF1FF01F0,0xF001F0FF,0xF001F001,0xF001F001,0xFF01F001,0x8DF201F0,0xBBF5E5F1,0xE191B7F3
.word 0xDFF1BDD3,0xF115FBF9,0xF001F0E1,0xFF059001,0xFF0130FF,0x01F0FFF1,0x01F001F0,0x01F001F0
.word 0xFFF101F0,0xF001F0FF,0xF011D0FD,0xF001F01F,0xF049F101,0x01F0FF13,0x01F087F9,0x77F99BB5
.word 0xC1F3E1F1,0xF0FF979C,0x5101F001,0xF1D151CB,0x9001F0DD,0xFFFFF75D,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x0BB1FF9D,0xF017F1FF,0xF001F001,0xF0E7F101,0xF1ADF501,0x2FBDFFE1,0xFBF1D9D1
.word 0x8FF0DDF1,0x01F001F0,0xF0FF01F0,0xFE01F001,0x90A3F6A3,0xF091F105,0xFF01F001,0x01F001F0
.word 0x01F001F0,0x2FF1FF73,0x01F001F0,0xF001F0FF,0xF18B7101,0xF00BBFD5,0xF0EBF101,0xB9F0FF01
.word 0x01F0E3F1,0x01F001F0,0xA9FEB9F3,0xF0FF07FB,0xF101F08B,0xF001F0FF,0xF001F001,0xFF01F001
.word 0xFFF101F0,0x01F001F0,0x73F701F0,0xDDF1D9F1,0xF1C9F3FF,0xF001F0E5,0xF0E3F17D,0xF001F001
.word 0xE3D1FF01,0x01F0C9F1,0x01F001F0,0x0DF053F5,0xF0FFFFF1,0xF001F001,0xF001F001,0x1001F001
.word 0xFF69F10D,0xA3F119FB,0xD9F101F0,0x01F0CFF1,0x4DF3D9F1,0xF0E7F1FF,0xF001F001,0x70855501
.word 0xF0E9F107,0x01F0FF01,0x01F001F0,0x01F0F3F1,0x01F0FFF1,0xF0FF01F0,0xF001F001,0x5001F001
.word 0xF1BDF109,0xFF217BBB,0x01F0CFF1,0xD3F1F9F0,0x01F0D5F1,0x01F001F0,0xF19FB5FF,0xF001F0CB
.word 0xF001F001,0xF101F001,0x0DF0FFE9,0x3BF557F9,0x01F091F1,0x01F001F0,0xF0FF01F0,0x3501F001
.word 0xF1B7F1FF,0xD101F0C1,0xFFD3F1CD,0x01F001F0,0x01F001F0,0xE5F151F9,0x93F101F0,0xF001F0FF
.word 0xFE2BF001,0x9713F069,0xF793FE01,0xFD74FF1F,0x01F091F1,0x01F001F0,0x01F001F0,0x1F3F01F0
.word 0x9A0DF5FC,0xF563F3B3,0xF001F04B,0x61F7FF01,0x8FF51FFB,0x01F001F0,0xA1F1A3F1,0xF0FF25F0
.word 0xFAAFF335,0x911350B7,0xD5DFF1E7,0xFF01F00B,0x01F0FFF1,0x01F001F0,0x01F001F0,0xFFF301F0
.word 0xF0CDF3FF,0xF001F00F,0xF05FB701,0xF001F001,0xB7F1FF01,0x01F001F0,0x095201F0,0xE1F1B571
.word 0xF0FFA3F1,0xF001F001,0xF001F001,0xF101F001,0xFF01F0FF,0x01F001F0,0x01F001F0,0xFFF101F0
.word 0x01F001F0,0xF001F0FF,0xD3E7F601,0xF719B031,0xBAB39115,0x75F3FF23,0x5DFABFF1,0x01F015F0
.word 0x01F001F0,0xF0FF01F0,0xD91FB901,0x993D392F,0xF091F145,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F0FFFB,0x01F001F0,0xF101F0FF,0xF001F09B,0xF001F001,0xF001F001,0x01F0FF01,0xA3B1A5F1
.word 0xBF5CD95A,0x3FF0F7FC,0x7DFFED9C,0xFD39B025,0xF103B03D,0xF001F091,0xE001F001,0x01F001F0
.word 0xFC1F01F0,0x7F5AEB5A,0xF095F0EB,0xF001F001,0xFE01F001,0xFF6BF115,0x17D021B0,0x933E6791
.word 0x6FDE57F0,0x21F079D1,0xF09DF0FF,0xF001F001,0xF049F001,0xF101F001,0x01F0FEFF,0x01F001F0
.word 0x01F001F0,0xFFD101F0,0x39E71E39,0xF00512E7,0xF001F001,0xEF7F7B01,0x0F100DB0,0x0D301370
.word 0x25704573,0xF0FF01F0,0xF001F001,0xF001F001,0xF07D7001,0xFF23F00D,0x23F0AFD0,0x31F001F0
.word 0x01F001F0,0x01F0FFF1,0xF001F0FF,0xF001F001,0x3001F001,0xF0FD110B,0x0950FF01,0x11B01D32
.word 0x31F2E110,0x01F017F0,0xF0FF01F0,0xB201F001,0x70637167,0x718BB20B,0xFF9DD283,0x59F0B1F2
.word 0xDDB209F2,0x0B9087F0,0xA3D049D2,0x301990FF,0xF091F131,0xF001F001,0xF001F001,0x01F0FF01
.word 0x01F0FFF1,0x01F001F0,0x37F201F0,0x52FF1DF2,0xF083945D,0xF001F023,0xF001F001,0xFF01F001
.word 0x15F201F0,0x01F001F0,0x01F001F0,0x0B3001F0,0xF091F1FF,0xF001F001,0xF001F001,0xF101F001
.word 0x01F0FFFF,0x01F001F0,0x01F001F0,0x01F001F0,0xD4FF01F0,0xF26DF48D,0x944B7265,0xD26DF2C3
.word 0xFFF5B475,0x6D7017B0,0x4D90A7D2,0xEFF135D5,0x01F0FFF1,0xF001F0FF,0xF001F001,0xF001F001
.word 0xF065F101,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF001F001
.word 0xF001F001,0xFF01F001,0x01F001F0,0xFFF11BF2,0x01F001F0,0x01F001F0,0xF001F0FF,0xF0FFF101
.word 0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F001
.word 0xF001F001,0xF001F001,0xFF03B001,0x01F091F1,0x01F001F0,0x01F001F0,0xFFF101F0,0xF001F0FF
.word 0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0
.word 0xF001F001,0xF101F001,0xF001F0FF,0xFF01F001,0x01F001F0,0xFFF101F0,0x01F001F0,0x01F001F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF1FF01F0,0xF001F0FF,0xF001F001,0xF001F001,0xFF01F001,0x01F091F0,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0xA1DA01F0
.word 0x01F0FFF1,0xF0FF01F0,0xF001F001,0xF101F001,0xF001F0FF,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0x1801D09F,0xF013F0E3,0xF001F01F,0xFF2BF001,0x01F001F0,0xFFF301F0
.word 0x01F001F0,0x01F001F0,0xF001F0FF,0xFD01F001,0xF003504D,0xF001F001,0x01F0FF01,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001,0xFF01F001,0x01F0FFF1
.word 0x01F001F0,0x01F001F0,0x01F001F0,0x9CEF7B03,0xB0EF7BF3,0xFFA51E01,0x01F00530,0x01F071DF
.word 0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0
.word 0xFFF101F0,0x01F001F0,0xF0F201F0,0xF001F001,0xBD01D001,0xBD01F0F7,0xF39CF71F,0x27F201D0
.word 0x01F02B72,0xF0FF2FF2,0xF001F001,0xF001F001,0xF09FF501,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xFFF101F0,0xF001F0FF,0xF001F001,0xF001F001,0x52FFF101,0xFBDE3F01,0x133001D0
.word 0x231221F2,0x293227F2,0xF421F2FF,0xF019F251,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0
.word 0x01F051F2,0x01F001F0,0xF1FF01F0,0xF001F0FF,0xF001F001,0xF001F001,0xFFFFD901,0xE3139F71
.word 0x11F2CF31,0x25B201F0,0x1DF21DF2,0xF24974FF,0x724DF427,0xF027F221,0xF001F001,0x01F0FF01
.word 0x01F001F0,0x01F001F0,0x4BF201F0,0xF1FF13F0,0xF001F0FF,0xF001F001,0xF001F001,0xFFFFFB01
.word 0x0F32A39C,0x11D21372,0x19901BF2,0x01F001F0,0xF031F2FF,0xF221F201,0xF025F223,0xF001F001
.word 0x01F0FF01,0x01F001F0,0x01F001F0,0xFFF101F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF1FFB901
.word 0xFF01F04B,0x297413D2,0x01F01992,0x01F001F0,0x01F001F0,0xD21D32FF,0xF21BF223,0xF0DDBC1F
.word 0xF001F0DD,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F0FFF1,0xF0FF01F0,0xF001F001,0x3701F001
.word 0xF19BF5FF,0xFF555159,0x01D02D76,0x01F031F0,0x479201F0,0x413603B0,0xF201F0FF,0xF039F417
.word 0xF8CDF0C3,0x5401F08F,0x1F7FFF57,0xC7F10953,0x01F001F0,0xFFF101F0,0xF0FF01F0,0xF001F001
.word 0xF001F001,0xF70D1001,0xFF01F0C9,0x5DF1FD35,0x6FF373F3,0x01F02BF1,0x5FF26374,0xF259F2FF
.word 0xF001F039,0xF0B3F001,0x901D7201,0x29F2FF05,0x01F001F0,0x01F001F0,0x91F10D10,0xF0FF01F0
.word 0xF001F001,0xF001F001,0xF0FFF101,0xFF099C01,0x01F00330,0x6FF185F3,0x77F101F0,0x41F201F0
.word 0xBC93D6FF,0xF6BF515D,0xF06FF0AF,0xF02BF001,0xB5F0FF01,0x01F0A3F2,0x07705BB2,0x01F091F1
.word 0xF0FF01F0,0xF001F001,0xBD01F001,0xF0C379FF,0xFF01F001,0x1BF21DBE,0x01F001F0,0x47F201F0
.word 0x51F14FF2,0xF0AB73FF,0xF04BF401,0xF0FDD101,0xF001F07B,0x01F0FF01,0x01D001F0,0x01F091F1
.word 0x01F001F0,0xF0CF01F0,0x1F01F001,0xF071F7FC,0xF0EBFB01,0x03FCFF01,0x4190239C,0x4BF24BF0
.word 0x97F68D96,0xFAFF01F0,0xF2079025,0xF0F3B053,0xF001F017,0xFFFFBA01,0x13FB217D,0x077001F0
.word 0x01F091F1,0x01F001F0,0xF001F0E7,0x1F01F001,0xFB1993FC,0xFFC9F0DF,0x1FF215D2,0x15F413B0
.word 0xE7F11770,0x01F023F2,0xF001F0FF,0xF001F039,0xF001F001,0xF001F041,0x31B0FFAD,0xEFF023FF
.word 0x91F11191,0x01F001F0,0xF0FF01F0,0xF001F001,0xF5FF9301,0xF319F557,0xFF13F23D,0x439A01F0
.word 0x29F051DA,0x01F001F0,0x01F001F0,0x7275F2FF,0xF1BDD293,0xF0DDF1F3,0xF001F001,0x01F0FF01
.word 0x91F103B0,0x01F001F0,0x01F001F0,0xF0FF01F0,0xD5FF5701,0xF713FE61,0xF01DF227,0xFF5BF201
.word 0x01F001F0,0x979901F0,0x67F05170,0xABF501F0,0xB21BF6FF,0xF093F28B,0xF001F011,0xF001F001
.word 0xFFF3FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FFFFD9,0xD7BBF501,0xF187515D,0xDA1350AD
.word 0xFF017BF1,0x01F001F0,0xEF7B01F0,0x01F073F0,0x33F22792,0xF001F0FF,0xF201F001,0xB2DBF453
.word 0xF101F06D,0x01F0FFFF,0x01F001F0,0x01F001F0,0xFFF101F0,0xF0FF01F0,0xF001F001,0xB32DF201
.word 0xF01FF067,0xFF01F001,0x01F001F0,0xF7F301F0,0x2FBAF1B9,0x01F0FF73,0xF001F0FF,0xF013F061
.word 0xF101F083,0xF001F091,0x01F0FF01,0x01F001F0,0xFFF101F0,0x01F001F0,0xF0FF01F0,0xF739F401
.word 0xF05FD765,0xF001F02F,0xFFBBFE51,0x01F001F0,0x01F001F0,0xA5F0A7F0,0x01F0B5F0,0xF101F0FF
.word 0xF001F0FF,0xF001F001,0xF001F001,0xFFF1FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FF01F0
.word 0xF001F001,0xF101F001,0xFE8FFE8F,0xFF37F289,0x01F001F0,0x01F001F0,0x01F001F0,0x01F091F1
.word 0xF001F0F9,0xF001F001,0x1F01F001,0xFFA957FC,0x01F0A9F4,0x3BFA01F0,0x7BF181D1,0x01F041F0
.word 0xF001F0FF,0xF165F001,0xF0BDD3D1,0xF001F019,0x01F0FF01,0xD5F41174,0x01F001F0,0x01F0FFF1
.word 0xF0F901F0,0xF001F001,0x9001F001,0x90E73905,0x63D9FF01,0x39B72FF9,0x01F001F0,0x8DFD01F0
.word 0xF1FF09F6,0xF08DFDAD,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0,0x01F001F0,0x01F0FFF1
.word 0x01F001F0,0xF001F0FC,0xF001F001,0x72FFB101,0xFFE3180D,0x1FB213F0,0x4BF467FB,0x3DF237F2
.word 0x7DFD01F0,0xF401F0FF,0xB80DF04F,0xF20FD019,0xF001F053,0x01F0FF01,0x01F001F0,0xFFF101F0
.word 0x01F001F0,0xF0FF01F0,0xF001F001,0xF0FFF101,0xF001F001,0xFF01F001,0x01F02DF2,0x1F7E65F4
.word 0x29F01DF0,0x01F001F0,0xF001F0FF,0xF2B95E01,0xBD01F0A7,0xF001F0DD,0x81D2FF01,0xFFF133F7
.word 0x01F001F0,0x01F001F0,0xF0FF01F0,0xF0FFF101,0xF001F001,0xF001F001,0xFF01F001,0x01F001F0
.word 0x01F001F0,0xC3F401F0,0x01F001F0,0x1701F0FF,0xF011F00D,0xD201F001,0x7077F2BF,0x91F1FF07
.word 0x01F001F0,0x01F001F0,0x01F001F0,0xF0FFFFF1,0xF001F001,0xF001F001,0xF001F001,0xFF01F001
.word 0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF1575201,0xF001F091
.word 0x01F0FF01,0x01F001F0,0xFF1901F0,0x97F0B312,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001
.word 0xFF01F001,0x01F001F0,0x01F001F0,0x01F001F0,0x01F001F0,0xF001F0FF,0xF101F001,0xF001F091
.word 0xF001F001,0x01F0CF01,0xFC1F01F0,0x05F2FD71,0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001
.word 0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF6FF01F0,0xF0FFF185,0xF001F001
.word 0xF001F001,0xFF01F001,0xF55DFFF1,0x0BF20592,0x01F015F0,0x01F001F0,0xF001F0FF,0xF001F001
.word 0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FFFFF1,0xF001F001
.word 0xF001F001,0x5301F001,0xFFB578FF,0x1D32EBD1,0x0BF201F2,0x01F011F0,0x01F001F0,0xF001F0FF
.word 0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0x01F001F0,0x01F001F0,0x01F0FFF1,0xF0FF01F0
.word 0xF001F001,0xF101F001,0xF00974FF,0xFF23580B,0xD1F00FF2,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x01F0FF01,0xFFF101F0,0x01F001F0,0x01F001F0
.word 0xF0FF01F0,0xF0FFF101,0xF013F401,0x96FB7113,0xFF4BFA31,0x01F025F2,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x91F1FF01,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF0FFFFF1,0xF001F001,0xB6199401,0xF0FBF14B,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF101F001,0xF001F091,0x01F0F001,0x01F001F0
.word 0xFC1F01F0,0x519FEF7B,0x70EF7BCD,0xF003B00B,0xD401F017,0x0DF4FF2D,0x01F03BD6,0x01F001F0
.word 0x01F001F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001,0xFF01F001,0x01F0FFF1,0x01F001F0
.word 0x01F001F0,0xFFB101F0,0x320150FF,0x50097001,0xF10DF20F,0xF801F0F5,0x2794FF49,0x53BA479A
.word 0x01F021F2,0x01F001F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001,0xFF01F001,0x01F0FFF1
.word 0x01F001F0,0x01F001F0,0xFFF101F0,0x7203B0FF,0x7411700D,0xF019F225,0xF001F001,0x1DB2FF01
.word 0x41F60BD2,0x01F001F0,0x01F001F0,0xF0FF01F0,0xF001F001,0xF001F001,0xF101F001,0xFC01F0FF
.word 0x01F001F0,0x01F001F0,0x03B001F0,0xD0FFF39C,0xF20BF201,0xF00BF413,0xF023F001,0xFF01F001
.word 0x417401F0,0x01F00BF2,0x01F035F2,0x01F001F0,0xF001F0FF,0xF001F001,0xF101F001,0xF001F0FF
.word 0x01F0F901,0x01F001F0,0x01D001F0,0x01D0F7BD,0xF211F2FF,0xB411F215,0xF0FBF11D,0xF001F001
.word 0x01F0FF01,0x45F683FC,0x1BF281F8,0x01F001F0,0xF0FF01F0,0xF001F001,0xF101F001,0xF001F0FF
.word 0xF301F001,0x01F001F0,0xFFB101F0,0x03F2FBDE,0xF2FF0FF2,0x7601F00D,0xF13DD623,0xF01FF2BD
.word 0xFF01F001,0x01F001F0,0x5FF653F6,0x01F085D8,0x01F031F2,0xF001F0FF,0xF101F001,0xF001F0FF
.word 0xF001F001,0x01F0FF01,0xFFF101F0,0x0392F111,0x0FF20FF2,0xF2FF01F0,0xD101F013,0xB21150ED
.word 0xF013F205,0xFF01F001,0x01F001F0,0x8D7A01F0,0x9DFA5194,0x01F005F2,0xF001F0FF,0xF101F001
.word 0xF001F091,0xF001F001,0x01F0FF01,0xFF3301F0,0xFD710110,0x0FF2FFD1,0x12FF01F0,0x3219F20D
.word 0xD219F215,0xD25B9A11,0xFF21F225,0x29F21170,0x01F001F0,0x01F001F0,0x859801F0,0xF179B6FF
.word 0xD2E77CD3,0xF14DF239,0xF001F091,0x01F0FF01,0x01F001F0,0xFF9701F0,0x07900572,0xB4FF1B52
.word 0xF029D021,0xF417F201,0xF601F029,0xFF03F237,0x1F527DBC,0x4DF427F2,0x01F001F0,0x01F001F0
.word 0xF017F2FF,0x7461F40D,0xF1BF9851,0xF001F091,0x01F0F301,0x01F001F0,0xFC1F01F0,0xE9F1F9F3
.word 0x341770FF,0x9009902B,0xF2FFF105,0xF405500F,0x2BF4FF25,0x759A01F0,0x77BA6778,0x2592F1F1
.word 0xF0FF3770,0xF001F02B,0xF001F001,0xF201F001,0xFF135013,0x01F091F1,0x01F001F0,0x01F001F0
.word 0xFF1101F0,0xB0F5B3FF,0xF1ED7105,0xD001F0F1,0xF015B037,0x19D2FF01,0x39F43DF6,0x01F021F2
.word 0x4BF4E991,0xBAFF31B4,0xF2A9F1B1,0xF801F047,0xF04BF0D3,0xFFFFF13D,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xE9F1FFB3,0xB1F5F1FF,0xF005B0D1,0xF00BF01F,0xF217B201,0x33F4FF25,0x57F601F0
.word 0x01F001F0,0x29F22BF2,0xB0FFD7F1,0xB1B9B835,0xF26FD4FB,0xF0FFF173,0xFF01F001,0x01F001F0
.word 0x01F001F0,0xF975FFB7,0xC3F1E3F5,0xF101F0FF,0xF001F0FB,0x9215F023,0xF015F27B,0x21D2FF01
.word 0x157201F0,0x2BF23B94,0x01F001F0,0xF0FF01F0,0xF601F001,0xF13FB2AB,0xF001F091,0xFF01F001
.word 0x01F001F0,0xFF9901F0,0x13D8FF7B,0xC3F11F92,0xF001F0FF,0xF001F001,0xF001F001,0xF24FF601
.word 0x01F0FF23,0x25F21D72,0x8D5801F0,0xDDF19BF8,0xF0FF01F0,0xD463B401,0xF091F149,0xF001F001
.word 0xFF01F001,0x01F001F0,0x55F1FFF1,0x01F0EBF1,0x01F001F0,0xF001F0FF,0xF101F001,0xD601F0FB
.word 0xFA0D904D,0x01F0FF97,0x39F201F0,0x01F03DF2,0x2F325FB4,0xF1FF35F2,0xF001F0FF,0xF001F001
.word 0xF001F001,0xFFFFF101,0x01F001F0,0x8FF115B2,0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001
.word 0xF201F001,0x72DBF42B,0x33F2FF45,0xE19E01F0,0x2B3229D2,0x5DF42FF2,0xF0FF91F1,0xF001F001
.word 0xF001F001,0x1701F001,0xFFEBF0FF,0x01F001F0,0x01F035F6,0x01F001F0,0x01F001F0,0xF001F0FF
.word 0xF001F001,0xF001F001,0xF001F001,0xBDBAFF01,0x01F061F4,0xAF78ABD8,0x01F091F1,0xF0FF01F0
.word 0xF001F001,0x7301F001,0xF073B9FF,0xFF01F0D1,0x07F217F4,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0xD7DAFF01,0x451169F1,0x01F091F1,0x01F001F0
.word 0xF0FF01F0,0xF501F001,0xF801F0FF,0xD201F011,0xFFA5793B,0x01F017F2,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF001F0FF,0xF001F001,0xF001F001,0xF001F001,0x91F1FF01,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF1FFFFF1,0xFF0BF0EF,0xF2BDBDB7,0xF001F0FF,0xFF01F001,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF001F0C3,0xFFFBDE01,0xF013F0FF,0xFFF1FF01,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xD8FF0770,0xF005F29F,0x990BDA01,0xF0FDF14B,0xFF01F013,0x01F001F0,0x01F001F0
.word 0x01F001F0,0x01F001F0,0xF001F0FF,0xF001F001,0xF101F001,0xF001F0FF,0x01F0FF01,0x01F001F0
.word 0x01F001F0,0xA1FAE1BE,0xF8FF15F2,0xF0E37127,0xF2FFF509,0xF001F013,0xFF01F001,0x01F001F0
.word 0x01F001F0,0xBDF3B5B3,0x01F001F0,0xF001F0FF,0xF101F001,0xF001F0FF,0xF001F001,0x01F0FF01
.word 0xFFF301F0,0x13F0A9FC,0x13F413F2,0xF1FF11FA,0xF00FF0F9,0xF001F001,0xF001F001,0xFF01F001
.word 0xBDF501F0,0x11720B52,0x3FF00FF0,0x01F015F0,0xF0FFF1FF,0xF001F001,0xF001F001,0xF101F001
.word 0x01F0FFFF,0x19F201F0,0x01F00FF2,0x15721DF2,0xF0FF1DF2,0xF001F001,0xF001F001,0xF001F001
.word 0xFFC1F101,0xD1110D50,0x01D00510,0x2B9015D0,0x53F03170,0xF0FFF1FF,0xF001F001,0xF001F001
.word 0xD101F001,0xEF7B3FFF,0x01F0CDF1,0x01F001F0,0x05F00B92,0xF401F0FF,0xF013F239,0xF001F001
.word 0xF001F001,0x01F0FF01,0x01F0A9F1,0x17F2F9B1,0x27F013B0,0xF1FE09D0,0xF001F091,0xF001F001
.word 0xF001F001,0xFC7F1F01,0x01F0FBD7,0x01F001F0,0x01F001F0,0xF4FF01F0,0xD401F039,0xF05FFA3D
.word 0xF001F013,0xFF01F001,0x01F001F0,0x1BD01DF2,0xFF73F193,0x095025F2,0xF091F1FF,0xF001F001
.word 0xF001F001,0x1101F001,0x0130FFFF,0x11F207D4,0x13F601F0,0x01F001F0,0xF0FF01F0,0xF01DF201
.word 0xFC1BF201,0xF01FF287,0xFF01F001,0x01F001F0,0x0FF0F9F1,0x47F425F0,0x01F091F1,0xF001F0F8
.word 0xF001F001,0x1F01F001,0xEB7F5AFC,0x0B520170,0x01B00FFC,0x01F0A3F1,0xF0FF01F0,0xF201F001
.word 0xD601F047,0xF001F063,0xFF29F201,0x01F06DF6,0x01F001F0,0xFDF1DBF1,0x597811F0,0xF091F1FF
.word 0xF001F001,0xF001F001,0x7301F001,0xD711FFFF,0x0FB20B92,0x1F72F9B1,0x01F0ABF1,0xF0FF01F0
.word 0xF0FD9101,0xF001F053,0xF401F001,0xFF2DF245,0x6FF601F0,0x01F001F0,0xFBF101F0,0xFFF901F0
.word 0xF001F0FF,0xF001F001,0xF001F001,0x92FFDB01,0x0BF2FF07,0x27741372,0x23741954,0x01F009B0
.word 0xF1FF01F0,0xF055F2FF,0xF001F001,0xF001F001,0xFF23F201,0x01F001F0,0x01F0CBFC,0x01F001F0
.word 0x01F0FFF1,0xF001F0FF,0xF001F001,0x3001F001,0xD3D7500B,0xF9B3FF83,0x317611F2,0xCFF129F4
.word 0xDFF12B72,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001,0xFF85F601,0x29F221D2,0x47F4C9FC
.word 0xFFF1E35C,0x01F001F0,0xF001F0FF,0xF001F001,0xF0FFF101,0xF20DB2AF,0xF351FF0F,0x3DF60FF2
.word 0x5BB117B4,0x77F80D92,0xF0FF01F0,0xF001F001,0xF001F001,0xF001F001,0xF3B19001,0x93F8E7F2
.word 0x01F001F0,0x91F1F7BD,0xF0FF01F0,0xF001F001,0xF001F001,0x74FF5301,0xFFA1F0C9,0x0FF20FF2
.word 0x01F00BF2,0xEDF527F4,0x2FF045D6,0xF075F1FF,0xF0AFD001,0xF001F017,0xF03DF801,0xE7F4FF3F
.word 0xB1F007F5,0x91F16F96,0x01F001F0,0xF0FF01F0,0xF001F001,0xD2FF7501,0xF0B19403,0xE70BB101
.word 0x3176A9F1,0xE73919D2,0x19F20110,0xF1FFE9F1,0xF165F03D,0xF001F071,0xF001F001,0xFF01F001
.word 0xEFB347F2,0x31F0F773,0xD352A9F0,0x01F091F1,0xF001F0FF,0xF001F001,0x9101F001,0xF801F0FF
.word 0x21F4FFAD,0xEDF0F1F0,0x4BF84598,0x1B521532,0xF2FF0790,0x9CE5F11D,0xF067B833,0xF497F101
.word 0xFF01F017,0x01F001F0,0x01F017F2,0x411041F4,0x01F091F1,0xF001F0FF,0xF001F001,0xF101F001
.word 0xF201F0FF,0x0BF2FF09,0xA1F10DF2,0x15B201F0,0x23F201F0,0xD2FF39F4,0xF5BFF91F,0xF78BBAA7
.word 0xD201F0D1,0xFF035AE1,0x17F029F0,0xFFF73DD6,0x01F001F0,0x01F001F0,0xF001F0FF,0xF0FFF101
.word 0xF601F001,0xF20BF221,0x13F2FF0D,0x01F013F2,0x3D96395A,0x099245F6,0xF2FF37F4,0xF007F419
.word 0xF041F401,0xF001F02F,0xFFEFF0DB,0xFFF32BF0,0x01F001F0,0x01F001F0,0x01F001F0,0xF0FFF1FF
.word 0xFE01F001,0xF20772FD,0x7A133011,0x0FF2FF5B,0x01F07DF1,0x2FF425F4,0x57F601F0,0xFCFF1DF2
.word 0xF001F0A3,0xF4A5909F,0x9701F065,0xFF27B71B,0x91F12B3C,0x01F001F0,0x01F001F0,0x01F001F0
.word 0xF0FFF1FF,0xF201F001,0xF23DBC0B,0xF025F409,0x1F75FF01,0x0FF245F1,0xFDF101F0,0x3FB401F0
.word 0x3AFF1572,0x741F9295,0xF01BF287,0xFC01BC9D,0xFF15F2A7,0x91F13359,0x01F001F0,0x01F001F0
.word 0x01F001F0,0xF0FFF1FF,0xF001F001,0xB611F201,0xF201F02F,0x01F0FF15,0x8BF327F4,0x15F201F0
.word 0x01F001F0,0xD2FF21F2,0xF135F41D,0xD001F0E5,0xF11BD2A3,0xF901F091,0x01F001F0,0x01F001F0
.word 0xFC1F01F0,0xF0FF79F1,0xF001F001,0xF601F001,0xF00BF22F,0xFF279001,0x47FB45F0,0x17F26DF1
.word 0x19F201F0,0x01F001F0,0xFE69F8FF,0xF019F2CD,0xF12D9401,0xF001F091,0x01F0FF01,0x01F001F0
.word 0xFF7301F0,0x01F06DF1,0xF0FF01F0,0xF401F001,0xF017F419,0xF401F001,0xFF17F229,0x85F301F0
.word 0x13B201F0,0x01F079BA,0xA1BC13F2,0xF85596FF,0xF137D86D,0xF001F091,0xF001F001,0x01F0FF01
.word 0xFFB501F0,0x01F063F1,0x01F001F0,0xF0FF01F0,0xF40FB201,0xF001F01D,0xF0A9F001,0xFF2FF401
.word 0xC95917F2,0x91FC0DF2,0x01F017F2,0xB79C01F0,0xF133B4FF,0xF001F091,0xF001F001,0xF001F001
.word 0xFFF7FF01,0x63F10BF2,0x41F401F0,0x01F001F0,0xF0FF41F0,0xF001F07D,0xF013F201,0xF201F055
.word 0xFF19F20B,0x23F201F0,0x01F04BF6,0xFFF101F0,0x01F001F0,0xF001F0F8,0xF001F001,0x00FF7101
@}}BLOCK(splash)

View File

Before

Width:  |  Height:  |  Size: 594 B

After

Width:  |  Height:  |  Size: 594 B

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -1 +1 @@
#define VERSION "1.5.1"
#define VERSION "1.5.2beta"

15
portlibs/Makefile Normal file
View File

@ -0,0 +1,15 @@
FREETYPE_VERSION=2.5.5
TARGETS=lib/libfreetype.a
default: ${TARGETS}
clean:
- rm -r bin include lib share
- rm -r freetype-${FREETYPE_VERSION}
lib/libfreetype.a: freetype-${FREETYPE_VERSION}
cd $< && (../configure-freetype && make install)
freetype-${FREETYPE_VERSION}:
tar xf $@.tar.bz2

7
portlibs/configure-freetype Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env sh
prefix=$(dirname $(dirname $PWD))/build
./configure --prefix=$prefix --host=arm-none-eabi \
--with-png=no --with-harfbuzz=no --with-pic=yes \
CPPFLAGS="-I$DEVKITPRO/portlibs/nds/include" \
LDFLAGS="-L$DEVKITPRO/portlibs/nds/lib"

Binary file not shown.

View File

@ -47,6 +47,11 @@ static bool book_title_lessthan(Book* a, Book* b) {
return strcasecmp(a->GetTitle(),b->GetTitle()) < 0;
}
void halt()
{
while(TRUE) swiWaitForVBlank();
}
App::App()
{
fontdir = string(FONTDIR);
@ -97,20 +102,10 @@ App::~App()
int App::Run(void)
{
char msg[128];
char msg[512];
SetBrightness(0);
// Start up FAT on this media.
if(!fatInitDefault())
{
iprintf("fatal: no filesystem.\n");
iprintf("info : DLDI patch?\n");
while(true) swiWaitForVBlank();
}
iprintf("progr: filesystem mounted.\n");
Log("----\nprogr: App starting up.\n");
Log("progr: dslibris starting up.\n");
console = true;
// Read preferences, pass 1,
@ -118,8 +113,6 @@ int App::Run(void)
if (int err = prefs->Read())
{
sprintf(msg,"warn : can't read prefs (%d).\n",err);
Log(msg);
if(err == 255)
{
Log("info : writing new prefs.\n");
@ -417,7 +410,7 @@ void App::Log(const char *format, const char *msg)
{
if(console)
{
char s[128];
char s[1024];
sprintf(s,format,msg);
iprintf(s);
}

View File

@ -91,11 +91,6 @@ void App::HandleEventInFont()
touchPosition touch;
touchRead(&touch);
touchPosition coord;
u8 regionprev[2], regionnext[2];
regionprev[0] = 0;
regionprev[1] = 16;
regionnext[0] = 240;
regionnext[1] = 255;
if(!orientation)
{

View File

@ -157,9 +157,6 @@ void App::HandleEventInPrefs()
touchPosition touch;
touchRead(&touch);
touchPosition coord;
u8 regionprev[2];
regionprev[0] = 0;
regionprev[1] = 16;
if(!orientation)
{

View File

@ -56,9 +56,9 @@ int Prefs::Read()
struct timeval time;
gettimeofday(&time,NULL);
char msg[64];
sprintf(msg,"info : file timestamp %ld",st.st_mtime);
sprintf(msg,"info : file timestamp %lld",st.st_mtime);
app->Log(msg);
sprintf(msg,"info : current time %ld",time.tv_sec);
sprintf(msg,"info : current time %lld",time.tv_sec);
app->Log(msg);
}
@ -124,4 +124,4 @@ int Prefs::Write()
void Prefs::Init(){
modtime = 0; // fill this in with gettimeofday()
swapshoulder = FALSE;
}
}

View File

@ -157,7 +157,7 @@ int Text::InitDefault(void) {
sprintf(msg,"info : font '%s'\n", iter->second.c_str());
app->Log(msg);
FT_Select_Charmap(face, FT_ENCODING_UNICODE);
//FT_Select_Charmap(face, FT_ENCODING_UNICODE);
FT_Set_Pixel_Sizes(face, 0, pixelsize);
textCache.insert(make_pair(face, new Cache()));
@ -168,7 +168,6 @@ int Text::InitDefault(void) {
screen = screenleft;
ClearCache();
InitPen();
ftc = false;
initialized = true;
return 0;
}
@ -540,7 +539,6 @@ void Text::PrintChar(u32 ucs, FT_Face face) {
FT_Byte *buffer = NULL;
FT_UInt advance = 0;
FTC_Node anode;
char msg[256];
// get metrics and glyph pointer.

View File

@ -21,9 +21,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <sys/param.h>
#include <filesystem.h>
#include <nds.h>
#include <fat.h>
#include <expat.h>
#include "expat.h"
#include "types.h"
#include "App.h"
#include "Book.h"
@ -41,8 +42,11 @@ int main(void)
{
// Get a console going.
consoleDemoInit();
iprintf("$ dslibris\n");
// Start up the filesystem.
//nitroFSInit(NULL);
fatInitDefault();
app = new App();
return app->Run();
}
@ -372,7 +376,7 @@ void title_char_hndl(void *userdata, const char *txt, int txtlen)
{
if(iswhitespace(txt[t]))
{
if(strlen(title)) strncat(title," ",1);
if(strlen(title)) strncat(title," ",2);
}
else strncat(title,txt+t,1);

View File

@ -93,7 +93,7 @@ const char unz_copyright[] =
/* unz_file_info_interntal contain internal info about a file in zipfile*/
typedef struct unz_file_info_internal_s
{
uLong offset_curfile;/* relative offset of local header 4 bytes */
unsigned long offset_curfile;/* relative offset of local header 4 bytes */
} unz_file_info_internal;
@ -104,21 +104,21 @@ typedef struct
char *read_buffer; /* internal buffer for compressed data */
z_stream stream; /* zLib stream structure for inflate */
uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/
uLong stream_initialised; /* flag set if stream structure is initialised*/
unsigned long pos_in_zipfile; /* position in byte on the zipfile, for fseek*/
unsigned long stream_initialised; /* flag set if stream structure is initialised*/
uLong offset_local_extrafield;/* offset of the local extra field */
unsigned long offset_local_extrafield;/* offset of the local extra field */
uInt size_local_extrafield;/* size of the local extra field */
uLong pos_local_extrafield; /* position in the local extra field in read*/
unsigned long pos_local_extrafield; /* position in the local extra field in read*/
uLong crc32; /* crc32 of all data uncompressed */
uLong crc32_wait; /* crc32 we must obtain after decompress all */
uLong rest_read_compressed; /* number of byte to be decompressed */
uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/
unsigned long crc32; /* crc32 of all data uncompressed */
unsigned long crc32_wait; /* crc32 we must obtain after decompress all */
unsigned long rest_read_compressed; /* number of byte to be decompressed */
unsigned long rest_read_uncompressed;/*number of byte to be obtained after decomp*/
zlib_filefunc_def z_filefunc;
voidpf filestream; /* io structore of the zipfile */
uLong compression_method; /* compression method (0==store) */
uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
unsigned long compression_method; /* compression method (0==store) */
unsigned long byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
int raw;
} file_in_zip_read_info_s;
@ -130,14 +130,14 @@ typedef struct
zlib_filefunc_def z_filefunc;
voidpf filestream; /* io structore of the zipfile */
unz_global_info gi; /* public global information */
uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
uLong num_file; /* number of the current file in the zipfile*/
uLong pos_in_central_dir; /* pos of the current file in the central dir*/
uLong current_file_ok; /* flag about the usability of the current file*/
uLong central_pos; /* position of the beginning of the central dir*/
unsigned long byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
unsigned long num_file; /* number of the current file in the zipfile*/
unsigned long pos_in_central_dir; /* pos of the current file in the central dir*/
unsigned long current_file_ok; /* flag about the usability of the current file*/
unsigned long central_pos; /* position of the beginning of the central dir*/
uLong size_central_dir; /* size of the central directory */
uLong offset_central_dir; /* offset of start of central directory with
unsigned long size_central_dir; /* size of the central directory */
unsigned long offset_central_dir; /* offset of start of central directory with
respect to the starting disk number */
unz_file_info cur_file_info; /* public info about the current file in zip*/
@ -196,23 +196,23 @@ local int unzlocal_getByte(pzlib_filefunc_def,filestream,pi)
local int unzlocal_getShort OF((
const zlib_filefunc_def* pzlib_filefunc_def,
voidpf filestream,
uLong *pX));
unsigned long *pX));
local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
uLong *pX;
unsigned long *pX;
{
uLong x ;
int i;
unsigned long x ;
int i = 0;
int err;
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x = (uLong)i;
x = (unsigned long)i;
if (err==UNZ_OK)
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x += ((uLong)i)<<8;
x += ((unsigned long)i)<<8;
if (err==UNZ_OK)
*pX = x;
@ -224,31 +224,31 @@ local int unzlocal_getShort (pzlib_filefunc_def,filestream,pX)
local int unzlocal_getLong OF((
const zlib_filefunc_def* pzlib_filefunc_def,
voidpf filestream,
uLong *pX));
unsigned long *pX));
local int unzlocal_getLong (pzlib_filefunc_def,filestream,pX)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
uLong *pX;
unsigned long *pX;
{
uLong x ;
int i;
unsigned long x ;
int i = 0;
int err;
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x = (uLong)i;
x = (unsigned long)i;
if (err==UNZ_OK)
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x += ((uLong)i)<<8;
x += ((unsigned long)i)<<8;
if (err==UNZ_OK)
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x += ((uLong)i)<<16;
x += ((unsigned long)i)<<16;
if (err==UNZ_OK)
err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);
x += ((uLong)i)<<24;
x += ((unsigned long)i)<<24;
if (err==UNZ_OK)
*pX = x;
@ -324,19 +324,19 @@ extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivit
Locate the Central directory of a zipfile (at the end, just before
the global comment)
*/
local uLong unzlocal_SearchCentralDir OF((
local unsigned long unzlocal_SearchCentralDir OF((
const zlib_filefunc_def* pzlib_filefunc_def,
voidpf filestream));
local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
local unsigned long unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
const zlib_filefunc_def* pzlib_filefunc_def;
voidpf filestream;
{
unsigned char* buf;
uLong uSizeFile;
uLong uBackRead;
uLong uMaxBack=0xffff; /* maximum size of global comment */
uLong uPosFound=0;
unsigned long uSizeFile;
unsigned long uBackRead;
unsigned long uMaxBack=0xffff; /* maximum size of global comment */
unsigned long uPosFound=0;
if (ZSEEK(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
return 0;
@ -354,7 +354,7 @@ local uLong unzlocal_SearchCentralDir(pzlib_filefunc_def,filestream)
uBackRead = 4;
while (uBackRead<uMaxBack)
{
uLong uReadSize,uReadPos ;
unsigned long uReadSize,uReadPos ;
int i;
if (uBackRead+BUFREADCOMMENT>uMaxBack)
uBackRead = uMaxBack;
@ -400,13 +400,13 @@ extern unzFile ZEXPORT unzOpen2 (path, pzlib_filefunc_def)
{
unz_s us;
unz_s *s;
uLong central_pos,uL;
unsigned long central_pos,uL;
uLong number_disk; /* number of the current dist, used for
unsigned long number_disk; /* number of the current dist, used for
spaning ZIP, unsupported, always 0*/
uLong number_disk_with_CD; /* number the the disk with central dir, used
unsigned long number_disk_with_CD; /* number the the disk with central dir, used
for spaning ZIP, unsupported, always 0*/
uLong number_entry_CD; /* total number of entries in
unsigned long number_entry_CD; /* total number of entries in
the central dir
(same than number_entry on nospan) */
@ -546,11 +546,11 @@ extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
Translate date/time from Dos format to tm_unz (readable more easilty)
*/
local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
uLong ulDosDate;
unsigned long ulDosDate;
tm_unz* ptm;
{
uLong uDate;
uDate = (uLong)(ulDosDate>>16);
unsigned long uDate;
uDate = (unsigned long)(ulDosDate>>16);
ptm->tm_mday = (uInt)(uDate&0x1f) ;
ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ;
ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
@ -568,11 +568,11 @@ local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
unz_file_info_internal
*pfile_info_internal,
char *szFileName,
uLong fileNameBufferSize,
unsigned long fileNameBufferSize,
void *extraField,
uLong extraFieldBufferSize,
unsigned long extraFieldBufferSize,
char *szComment,
uLong commentBufferSize));
unsigned long commentBufferSize));
local int unzlocal_GetCurrentFileInfoInternal (file,
pfile_info,
@ -584,17 +584,17 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
unz_file_info *pfile_info;
unz_file_info_internal *pfile_info_internal;
char *szFileName;
uLong fileNameBufferSize;
unsigned long fileNameBufferSize;
void *extraField;
uLong extraFieldBufferSize;
unsigned long extraFieldBufferSize;
char *szComment;
uLong commentBufferSize;
unsigned long commentBufferSize;
{
unz_s* s;
unz_file_info file_info;
unz_file_info_internal file_info_internal;
int err=UNZ_OK;
uLong uMagic;
unsigned long uMagic;
long lSeek=0;
if (file==NULL)
@ -665,7 +665,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
lSeek+=file_info.size_filename;
if ((err==UNZ_OK) && (szFileName!=NULL))
{
uLong uSizeRead ;
unsigned long uSizeRead ;
if (file_info.size_filename<fileNameBufferSize)
{
*(szFileName+file_info.size_filename)='\0';
@ -683,7 +683,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
if ((err==UNZ_OK) && (extraField!=NULL))
{
uLong uSizeRead ;
unsigned long uSizeRead ;
if (file_info.size_file_extra<extraFieldBufferSize)
uSizeRead = file_info.size_file_extra;
else
@ -708,7 +708,7 @@ local int unzlocal_GetCurrentFileInfoInternal (file,
if ((err==UNZ_OK) && (szComment!=NULL))
{
uLong uSizeRead ;
unsigned long uSizeRead ;
if (file_info.size_file_comment<commentBufferSize)
{
*(szComment+file_info.size_file_comment)='\0';
@ -754,11 +754,11 @@ extern int ZEXPORT unzGetCurrentFileInfo (file,
unzFile file;
unz_file_info *pfile_info;
char *szFileName;
uLong fileNameBufferSize;
unsigned long fileNameBufferSize;
void *extraField;
uLong extraFieldBufferSize;
unsigned long extraFieldBufferSize;
char *szComment;
uLong commentBufferSize;
unsigned long commentBufferSize;
{
return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
szFileName,fileNameBufferSize,
@ -839,8 +839,8 @@ extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
*/
unz_file_info cur_file_infoSaved;
unz_file_info_internal cur_file_info_internalSaved;
uLong num_fileSaved;
uLong pos_in_central_dirSaved;
unsigned long num_fileSaved;
unsigned long pos_in_central_dirSaved;
if (file==NULL)
@ -900,8 +900,8 @@ extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
/*
typedef struct unz_file_pos_s
{
uLong pos_in_zip_directory; // offset in file
uLong num_of_file; // # of file
unsigned long pos_in_zip_directory; // offset in file
unsigned long num_of_file; // # of file
} unz_file_pos;
*/
@ -964,12 +964,12 @@ local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
psize_local_extrafield)
unz_s* s;
uInt* piSizeVar;
uLong *poffset_local_extrafield;
unsigned long *poffset_local_extrafield;
uInt *psize_local_extrafield;
{
uLong uMagic,uData,uFlags;
uLong size_filename;
uLong size_extra_field;
unsigned long uMagic,uData,uFlags;
unsigned long size_filename;
unsigned long size_extra_field;
int err=UNZ_OK;
*piSizeVar = 0;
@ -1060,7 +1060,7 @@ extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
uInt iSizeVar;
unz_s* s;
file_in_zip_read_info_s* pfile_in_zip_read_info;
uLong offset_local_extrafield; /* offset of the local extra field */
unsigned long offset_local_extrafield; /* offset of the local extra field */
uInt size_local_extrafield; /* size of the local extra field */
# ifndef NOUNCRYPT
char source[12];
@ -1169,7 +1169,7 @@ extern int ZEXPORT unzOpenCurrentFile3 (file, method, level, raw, password)
if (password != NULL)
{
int i;
s->pcrc_32_tab = get_crc_table();
s->pcrc_32_tab = (unsigned long int *)get_crc_table();
init_keys(password,s->keys,s->pcrc_32_tab);
if (ZSEEK(s->z_filefunc, s->filestream,
s->pfile_in_zip_read->pos_in_zipfile +
@ -1337,9 +1337,9 @@ extern int ZEXPORT unzReadCurrentFile (file, buf, len)
}
else
{
uLong uTotalOutBefore,uTotalOutAfter;
unsigned long uTotalOutBefore,uTotalOutAfter;
const Bytef *bufBefore;
uLong uOutThis;
unsigned long uOutThis;
int flush=Z_SYNC_FLUSH;
uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
@ -1445,7 +1445,7 @@ extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
unz_s* s;
file_in_zip_read_info_s* pfile_in_zip_read_info;
uInt read_now;
uLong size_to_read;
unsigned long size_to_read;
if (file==NULL)
return UNZ_PARAMERROR;
@ -1534,11 +1534,11 @@ extern int ZEXPORT unzCloseCurrentFile (file)
extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
unzFile file;
char *szComment;
uLong uSizeBuf;
unsigned long uSizeBuf;
{
//int err=UNZ_OK;
unz_s* s;
uLong uReadThis ;
unsigned long uReadThis ;
if (file==NULL)
return UNZ_PARAMERROR;
s=(unz_s*)file;
@ -1563,7 +1563,7 @@ extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
}
/* Additions by RX '2004 */
extern uLong ZEXPORT unzGetOffset (file)
extern unsigned long ZEXPORT unzGetOffset (file)
unzFile file;
{
unz_s* s;
@ -1581,7 +1581,7 @@ extern uLong ZEXPORT unzGetOffset (file)
extern int ZEXPORT unzSetOffset (file, pos)
unzFile file;
uLong pos;
unsigned long pos;
{
unz_s* s;
int err;

View File

@ -1,26 +0,0 @@
TARGETS=lib/libexpat.a lib/libz.a lib/libfreetype.a
default: ${TARGETS}
clean:
- rm -r bin include lib share
- rm -r expat-2.1.0 freetype-2.4.8 zlib-1.2.8
lib/libexpat.a: expat-2.1.0
cd $< && ../configure-expat && make install
lib/libfreetype.a: freetype-2.4.8
cd $< && ../configure-freetype && make install
lib/libz.a: zlib-1.2.8
cd $< && ../configure-zlib && make install
expat-2.1.0:
tar xf $@.tar.gz
freetype-2.4.8:
tar xf $@.tar.bz2
zlib-1.2.8:
tar xf $@.tar.gz

View File

@ -1,257 +0,0 @@
# Makefile for zlib
# Copyright (C) 1995-2010 Jean-loup Gailly.
# For conditions of distribution and use, see copyright notice in zlib.h
# To compile and test, type:
# ./configure; make test
# Normally configure builds both a static and a shared library.
# If you want to build just a static library, use: ./configure --static
# To use the asm code, type:
# cp contrib/asm?86/match.S ./match.S
# make LOC=-DASMV OBJA=match.o
# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
# make install
# To install in $HOME instead of /usr/local, use:
# make install prefix=$HOME
CC=arm-eabi-gcc
CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1
#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
#CFLAGS=-g -DDEBUG
#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
# -Wstrict-prototypes -Wmissing-prototypes
SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1
LDFLAGS= -L. libz.a
TEST_LDFLAGS=-L. libz.a
LDSHARED=arm-eabi-gcc
CPP=arm-eabi-gcc -E
STATICLIB=libz.a
SHAREDLIB=
SHAREDLIBV=
SHAREDLIBM=
LIBS=$(STATICLIB) $(SHAREDLIBV)
AR=arm-eabi-ar rc
RANLIB=arm-eabi-ranlib
LDCONFIG=ldconfig
LDSHAREDLIBC=-lc
TAR=tar
SHELL=/bin/sh
EXE=
prefix =/opt/devkitpro-r34/devkitARM
exec_prefix =/opt/devkitpro-r34/devkitARM/arm-eabi
libdir =${exec_prefix}/lib
sharedlibdir =${libdir}
includedir =${prefix}/include
mandir =${prefix}/share/man
man3dir = ${mandir}/man3
pkgconfigdir = ${libdir}/pkgconfig
OBJC = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \
gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
PIC_OBJC = adler32.lo compress.lo crc32.lo deflate.lo gzclose.lo gzlib.lo gzread.lo \
gzwrite.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo uncompr.lo zutil.lo
# to use the asm code: make OBJA=match.o, PIC_OBJA=match.lo
OBJA =
PIC_OBJA =
OBJS = $(OBJC) $(OBJA)
PIC_OBJS = $(PIC_OBJC) $(PIC_OBJA)
all: static all64
static: example$(EXE) minigzip$(EXE)
shared: examplesh$(EXE) minigzipsh$(EXE)
all64: example64$(EXE) minigzip64$(EXE)
check: test
test: all teststatic test64
teststatic: static
@if echo hello world | ./minigzip | ./minigzip -d && ./example; then \
echo ' *** zlib test OK ***'; \
else \
echo ' *** zlib test FAILED ***'; false; \
fi
-@rm -f foo.gz
testshared: shared
@LD_LIBRARY_PATH=`pwd`:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
LD_LIBRARYN32_PATH=`pwd`:$(LD_LIBRARYN32_PATH) ; export LD_LIBRARYN32_PATH; \
DYLD_LIBRARY_PATH=`pwd`:$(DYLD_LIBRARY_PATH) ; export DYLD_LIBRARY_PATH; \
SHLIB_PATH=`pwd`:$(SHLIB_PATH) ; export SHLIB_PATH; \
if echo hello world | ./minigzipsh | ./minigzipsh -d && ./examplesh; then \
echo ' *** zlib shared test OK ***'; \
else \
echo ' *** zlib shared test FAILED ***'; false; \
fi
-@rm -f foo.gz
test64: all64
@if echo hello world | ./minigzip64 | ./minigzip64 -d && ./example64; then \
echo ' *** zlib 64-bit test OK ***'; \
else \
echo ' *** zlib 64-bit test FAILED ***'; false; \
fi
-@rm -f foo.gz
libz.a: $(OBJS)
$(AR) $@ $(OBJS)
-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
match.o: match.S
$(CPP) match.S > _match.s
$(CC) -c _match.s
mv _match.o match.o
rm -f _match.s
match.lo: match.S
$(CPP) match.S > _match.s
$(CC) -c -fPIC _match.s
mv _match.o match.lo
rm -f _match.s
example64.o: example.c zlib.h zconf.h
$(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ example.c
minigzip64.o: minigzip.c zlib.h zconf.h
$(CC) $(CFLAGS) -D_FILE_OFFSET_BITS=64 -c -o $@ minigzip.c
.SUFFIXES: .lo
.c.lo:
-@mkdir objs 2>/dev/null || test -d objs
$(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $<
-@mv objs/$*.o $@
$(SHAREDLIBV): $(PIC_OBJS)
$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
rm -f $(SHAREDLIB) $(SHAREDLIBM)
ln -s $@ $(SHAREDLIB)
ln -s $@ $(SHAREDLIBM)
-@rmdir objs
example$(EXE): example.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)
minigzip$(EXE): minigzip.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
examplesh$(EXE): example.o $(SHAREDLIBV)
$(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)
minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
$(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)
example64$(EXE): example64.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
minigzip64$(EXE): minigzip64.o $(STATICLIB)
$(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)
install-libs: $(LIBS)
-@if [ ! -d $(DESTDIR)$(exec_prefix) ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
-@if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir -p $(DESTDIR)$(libdir); fi
-@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
-@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi
-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
cp $(STATICLIB) $(DESTDIR)$(libdir)
#cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)
cd $(DESTDIR)$(libdir); chmod u=rw,go=r $(STATICLIB)
-@(cd $(DESTDIR)$(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
-@cd $(DESTDIR)$(sharedlibdir); if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
chmod 755 $(SHAREDLIBV); \
rm -f $(SHAREDLIB) $(SHAREDLIBM); \
ln -s $(SHAREDLIBV) $(SHAREDLIB); \
ln -s $(SHAREDLIBV) $(SHAREDLIBM); \
($(LDCONFIG) || true) >/dev/null 2>&1; \
fi
cp zlib.3 $(DESTDIR)$(man3dir)
chmod 644 $(DESTDIR)$(man3dir)/zlib.3
cp zlib.pc $(DESTDIR)$(pkgconfigdir)
chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc
# The ranlib in install is needed on NeXTSTEP which checks file times
# ldconfig is for Linux
install: install-libs
-@if [ ! -d $(DESTDIR)$(includedir) ]; then mkdir -p $(DESTDIR)$(includedir); fi
cp zlib.h zconf.h $(DESTDIR)$(includedir)
chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
uninstall:
cd $(DESTDIR)$(includedir); rm -f zlib.h zconf.h
cd $(DESTDIR)$(libdir); rm -f libz.a; \
if test "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
fi
cd $(DESTDIR)$(man3dir); rm -f zlib.3
cd $(DESTDIR)$(pkgconfigdir); rm -f zlib.pc
docs: zlib.3.pdf
zlib.3.pdf: zlib.3
groff -mandoc -f H -T ps zlib.3 | ps2pdf - zlib.3.pdf
zconf.h.in: zconf.h.cmakein
sed "/^#cmakedefine/D" < zconf.h.cmakein > zconf.h.in
touch -r zconf.h.cmakein zconf.h.in
zconf: zconf.h.in
cp -p zconf.h.in zconf.h
mostlyclean: clean
clean:
rm -f *.o *.lo *~ \
example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
example64$(EXE) minigzip64$(EXE) \
libz.* foo.gz so_locations \
_match.s maketree contrib/infback9/*.o
rm -rf objs
maintainer-clean: distclean
distclean: clean zconf docs
rm -f Makefile zlib.pc
-@rm -f .DS_Store
-@printf 'all:\n\t-@echo "Please use ./configure first. Thank you."\n' > Makefile
-@printf '\ndistclean:\n\tmake -f Makefile.in distclean\n' >> Makefile
-@touch -r Makefile.in Makefile
tags:
etags *.[ch]
depend:
makedepend -- $(CFLAGS) -- *.[ch]
# DO NOT DELETE THIS LINE -- make depend depends on it.
adler32.o zutil.o: zutil.h zlib.h zconf.h
gzclose.o gzlib.o gzread.o gzwrite.o: zlib.h zconf.h gzguts.h
compress.o example.o minigzip.o uncompr.o: zlib.h zconf.h
crc32.o: zutil.h zlib.h zconf.h crc32.h
deflate.o: deflate.h zutil.h zlib.h zconf.h
infback.o inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h
inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
inftrees.o: zutil.h zlib.h zconf.h inftrees.h
trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
adler32.lo zutil.lo: zutil.h zlib.h zconf.h
gzclose.lo gzlib.lo gzread.lo gzwrite.lo: zlib.h zconf.h gzguts.h
compress.lo example.lo minigzip.lo uncompr.lo: zlib.h zconf.h
crc32.lo: zutil.h zlib.h zconf.h crc32.h
deflate.lo: deflate.h zutil.h zlib.h zconf.h
infback.lo inflate.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h inffixed.h
inffast.lo: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h
inftrees.lo: zutil.h zlib.h zconf.h inftrees.h
trees.lo: deflate.h zutil.h zlib.h zconf.h trees.h

View File

@ -1,3 +0,0 @@
Replace corresponding files in your devkitPro
buildscripts repo with these.

View File

@ -1,61 +0,0 @@
#!/bin/sh
export DEVKITPRO=$TOOLPATH
export DEVKITARM=$DEVKITPRO/devkitARM
#---------------------------------------------------------------------------------
# copy base rulesets
#---------------------------------------------------------------------------------
cp -v $BUILDSCRIPTDIR/dkarm-eabi/rules/* $prefix
#---------------------------------------------------------------------------------
# Install and build the gba crt
#---------------------------------------------------------------------------------
cp -v $BUILDSCRIPTDIR/dkarm-eabi/crtls/* $prefix/$target/lib/
cd $prefix/$target/lib/
$MAKE CRT=gba
$MAKE CRT=gp32
$MAKE CRT=er
$MAKE CRT=gp32_gpsdk
$MAKE CRT=ds_arm7
$MAKE CRT=ds_arm9
$MAKE CRT=ds_cart
$target-gcc -march=armv6k -mfloat-abi=hard -c 3dsx_crt0.s -o armv6k/fpu/3dsx_crt0.o
# cd $BUILDDIR/libgba-$LIBGBA_VER
# $MAKE || { echo "error building libgba"; exit 1; }
# $MAKE install || { echo "error installing libgba"; exit 1; }
cd $BUILDDIR/libnds-$LIBNDS_VER
$MAKE || { echo "error building libnds"; exit 1; }
$MAKE install || { echo "error installing libnds"; exit 1; }
# cd $BUILDDIR/dswifi-$DSWIFI_VER
# $MAKE || { echo "error building dswifi"; exit 1; }
# $MAKE install || { echo "error installing dswifi"; exit 1; }
# cd $BUILDDIR/maxmod-$MAXMOD_VER
# $MAKE || { echo "error building maxmod"; exit 1; }
# $MAKE install || { echo "error installing maxmod"; exit 1; }
# cd $BUILDDIR/default_arm7-$DEFAULT_ARM7_VER
# $MAKE || { echo "error building default arm7"; exit 1; }
# $MAKE install || { echo "error installing default arm7"; exit 1; }
cd $BUILDDIR/libfat-$LIBFAT_VER
$MAKE nds-install || { echo "error building nds libfat"; exit 1; }
#$MAKE gba-install || { echo "error installing gba libfat"; exit 1; }
# cd $BUILDDIR/libmirko-$LIBMIRKO_VER
# $MAKE || { echo "error building libmirko"; exit 1; }
# $MAKE install || { echo "error installing libmirko"; exit 1; }
# cd $BUILDDIR/libfilesystem-$FILESYSTEM_VER
# $MAKE || { echo "error building libfilesystem"; exit 1; }
# $MAKE install || { echo "error installing libfilesystem"; exit 1; }
# cd $BUILDDIR/libctru-$LIBCTRU_VER
# $MAKE || { echo "error building libctru"; exit 1; }
# $MAKE install || { echo "error installing libctru"; exit 1; }

View File

@ -1,318 +0,0 @@
#!/bin/bash
#---------------------------------------------------------------------------------
# Build scripts for
# devkitARM release 45
# devkitPPC release 27
# devkitPSP release 17
#---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then
echo "Currently in release cycle, proceed with caution, do not report problems, do not ask for support."
echo "Please use the latest release buildscripts unless advised otherwise by devkitPro staff."
echo "http://sourceforge.net/projects/devkitpro/files/buildscripts/"
echo
echo "The scripts in the git repository are quite often dependent on things which currently only exist"
echo "on developer machines. This is not a bug, use stable releases."
exit 1
fi
echo "Please note, these scripts are provided as a courtesy, toolchains built with them"
echo "are for personal use only and may not be distributed by entities other than devkitPro."
echo "See http://devkitpro.org/wiki/Trademarks"
echo
echo "Patches and improvements are of course welcome, please send these to the patch tracker"
echo "https://sourceforge.net/tracker/?group_id=114505&atid=668553"
echo
LIBOGC_VER=1.8.12
LIBGBA_VER=20150106
LIBNDS_VER=1.5.12
LIBCTRU_VER=0.6.0
DEFAULT_ARM7_VER=0.6.0
DSWIFI_VER=0.3.17
LIBMIRKO_VER=0.9.7
MAXMOD_VER=1.0.9
FILESYSTEM_VER=0.9.12
LIBFAT_VER=1.0.14
PSPSDK_VER=20120404
GBATOOLS_VER=1.0.0
DSTOOLS_VER=1.0.2
GP32_TOOLS_VER=1.0.1
GRIT_VER=0.8.13
NDSTOOL_VER=1.50.3
GENERAL_TOOLS_VER=1.0.0
DLDITOOL_VER=1.24.0
GAMECUBE_TOOLS_VER=1.0.0
WIILOAD_VER=0.5.1
MMUTIL_VER=1.8.6
DFU_UTIL_VER=0.8.1
STLINK_VER=0.5.8
TOOLS3DS_VER=1.1.1
LINK3DS_VER=0.5.1
PICASSO_VER=2.1.0
#---------------------------------------------------------------------------------
function extract_and_patch {
#---------------------------------------------------------------------------------
if [ ! -f extracted-$1 ]; then
echo "extracting $1"
if [ $3 == "bz2" ]; then
extractflags="-xjf"
archivetype=".tar.bz2"
elif [ $3 == "gz" ]; then
extractflags="-xzf"
archivetype=".tar.gz"
else
echo "invalid archive type"
exit 1
fi
tar $extractflags "$SRCDIR/$1-$2$archivetype" || { echo "Error extracting "$1; exit 1; }
touch extracted-$1
fi
if [[ ! -f patched-$1 && -f $patchdir/$1-$2.patch ]]; then
echo "patching $1"
patch -p1 -d $1-$2 -i $patchdir/$1-$2.patch || { echo "Error patching $1"; exit 1; }
touch patched-$1
fi
}
if [ ! -z "$CROSSBUILD" ] ; then
if [ ! -x $(which $CROSSBUILD-gcc) ]; then
echo "error $CROSSBUILD-gcc not in PATH"
exit 1
fi
fi
#---------------------------------------------------------------------------------
# Sane defaults for building toolchain
#---------------------------------------------------------------------------------
export CFLAGS="-O2 -pipe"
export CXXFLAGS="$CFLAGS"
unset LDFLAGS
#---------------------------------------------------------------------------------
# Look for automated configuration file to bypass prompts
#---------------------------------------------------------------------------------
echo -n "Looking for configuration file... "
if [ -f ./config.sh ]; then
echo "Found."
. ./config.sh
else
echo "Not found"
fi
. ./select_toolchain.sh
#---------------------------------------------------------------------------------
# Get preferred installation directory and set paths to the sources
#---------------------------------------------------------------------------------
if [ ! -z "$BUILD_DKPRO_INSTALLDIR" ] ; then
INSTALLDIR="$BUILD_DKPRO_INSTALLDIR"
else
echo
echo "Please enter the directory where you would like '$package' to be installed:"
echo "for mingw/msys you must use <drive>:/<install path> or you will have include path problems"
echo "this is the top level directory for devkitpro, i.e. e:/devkitPro"
read -e INSTALLDIR
echo
fi
[ ! -z "$INSTALLDIR" ] && mkdir -p $INSTALLDIR && touch $INSTALLDIR/nonexistantfile && rm $INSTALLDIR/nonexistantfile || exit 1;
if test "`curl -V`"; then
FETCH="curl -f -L -O"
elif test "`wget -V`"; then
FETCH=wget
else
echo "ERROR: Please make sure you have wget or curl installed."
exit 1
fi
#---------------------------------------------------------------------------------
# find proper make
#---------------------------------------------------------------------------------
if [ -z "$MAKE" -a -x "$(which gnumake)" ]; then MAKE=$(which gnumake); fi
if [ -z "$MAKE" -a -x "$(which gmake)" ]; then MAKE=$(which gmake); fi
if [ -z "$MAKE" -a -x "$(which make)" ]; then MAKE=$(which make); fi
if [ -z "$MAKE" ]; then
echo no make found
exit 1
fi
echo use $MAKE as make
export MAKE
#---------------------------------------------------------------------------------
# Add installed devkit to the path, adjusting path on minsys
#---------------------------------------------------------------------------------
TOOLPATH=$(echo $INSTALLDIR | sed -e 's/^\([a-zA-Z]\):/\/\1/')
export PATH=$PATH:$TOOLPATH/$package/bin
if [ ! -z $CROSSBUILD ]; then
prefix=$INSTALLDIR/$CROSSBUILD/$package
CROSS_PARAMS="--build=`./config.guess` --host=$CROSSBUILD"
else
prefix=$INSTALLDIR/$package
fi
if [ "$BUILD_DKPRO_AUTOMATED" != "1" ] ; then
echo
echo 'Ready to install '$package' in '$prefix
echo
echo 'press return to continue'
read dummy
fi
PLATFORM=`uname -s`
case $PLATFORM in
Darwin )
cflags="-mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
ldflags="-mmacosx-version-min=10.4 -arch i386 -arch ppc -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
export CC=gcc-4.0
export CXX=g++-4.0
;;
MINGW32* )
cflags="-D__USE_MINGW_ACCESS"
# horrid hack to get -flto to work on windows
plugin_ld="--with-plugin-ld=ld"
;;
esac
BUILDSCRIPTDIR=$(pwd)
BUILDDIR=$(pwd)/.$package
if [ ! -z $CROSSBUILD ]; then
BUILDDIR=$BUILDDIR-$CROSSBUILD
fi
DEVKITPRO_URL="http://downloads.sourceforge.net/devkitpro"
patchdir=$(pwd)/$basedir/patches
scriptdir=$(pwd)/$basedir/scripts
archives="binutils-${BINUTILS_VER}.tar.bz2 gcc-${GCC_VER}.tar.bz2 newlib-${NEWLIB_VER}.tar.gz gdb-${GDB_VER}.tar.gz"
if [ $VERSION -eq 1 ]; then
# targetarchives="libnds-src-${LIBNDS_VER}.tar.bz2 libgba-src-${LIBGBA_VER}.tar.bz2
# libmirko-src-${LIBMIRKO_VER}.tar.bz2 dswifi-src-${DSWIFI_VER}.tar.bz2 maxmod-src-${MAXMOD_VER}.tar.bz2
# default_arm7-src-${DEFAULT_ARM7_VER}.tar.bz2 libfilesystem-src-${FILESYSTEM_VER}.tar.bz2
# libfat-src-${LIBFAT_VER}.tar.bz2 libctru-src-${LIBCTRU_VER}.tar.bz2"
# hostarchives="gbatools-$GBATOOLS_VER.tar.bz2 gp32tools-$GP32_TOOLS_VER.tar.bz2
# dstools-$DSTOOLS_VER.tar.bz2 grit-$GRIT_VER.tar.bz2 ndstool-$NDSTOOL_VER.tar.bz2
# general-tools-$GENERAL_TOOLS_VER.tar.bz2 dlditool-$DLDITOOL_VER.tar.bz2 mmutil-$MMUTIL_VER.tar.bz2
# dfu-util-$DFU_UTIL_VER.tar.bz2 stlink-$STLINK_VER.tar.bz2 3dstools-$TOOLS3DS_VER.tar.bz2
# picasso-$PICASSO_VER.tar.bz2 3dslink-$LINK3DS_VER.tar.bz2"
targetarchives="libnds-src-$LIBNDS_VER.tar.gz libfat-src-$LIBFAT_VER.tar.gz"
#hostarchives="general-tools-$GENERAL_TOOLS_VER.tar.gz"
hostarchives=""
fi
if [ $VERSION -eq 2 ]; then
targetarchives="libogc-src-${LIBOGC_VER}.tar.bz2 libfat-src-${LIBFAT_VER}.tar.bz2"
hostarchives="gamecube-tools-$GAMECUBE_TOOLS_VER.tar.bz2 wiiload-$WIILOAD_VER.tar.bz2 general-tools-$GENERAL_TOOLS_VER.tar.bz2"
fi
if [ $VERSION -eq 3 ]; then
targetarchives="pspsdk-src-${PSPSDK_VER}.tar.bz2"
fi
if [ ! -z "$BUILD_DKPRO_SRCDIR" ] ; then
SRCDIR="$BUILD_DKPRO_SRCDIR"
else
SRCDIR=`pwd`
fi
cd "$SRCDIR"
for archive in $archives $targetarchives $hostarchives
do
echo $archive
if [ ! -f $archive ]; then
$FETCH http://downloads.sf.net/devkitpro/$archive || { echo "Error: Failed to download $archive"; exit 1; }
fi
done
cd $BUILDSCRIPTDIR
mkdir -p $BUILDDIR
cd $BUILDDIR
extract_and_patch binutils $BINUTILS_VER bz2
extract_and_patch gcc $GCC_VER bz2
rm -fr gcc-$GCC_VER/zlib
extract_and_patch newlib $NEWLIB_VER gz
extract_and_patch gdb $GDB_VER gz
for archive in $targetarchives
do
destdir=$(echo $archive | sed -e 's/\(.*\)-src-\(.*\)\.tar\.(.*)/\1-\2\.3/' )
echo $destdir
if [ ! -d $destdir ]; then
mkdir -p $destdir
# bzip2 -cd "$SRCDIR/$archive" | tar -xf - -C $destdir || { echo "Error extracting "$archive; exit 1; }
tar -xf $SRCDIR/$archive -C $destdir || { echo "Error extracting "$archive; exit 1; }
fi
done
for archive in $hostarchives
do
destdir=$(echo $archive | sed -e 's/\(.*\)-src-\(.*\)\.tar\.bz2/\1-\2/' )
if [ ! -d $destdir ]; then
# tar -xjf "$SRCDIR/$archive"
tar -xf "$SRCDIR/$archive"
fi
done
#---------------------------------------------------------------------------------
# Build and install devkit components
#---------------------------------------------------------------------------------
if [ -f $scriptdir/build-gcc.sh ]; then . $scriptdir/build-gcc.sh || { echo "Error building toolchain"; exit 1; }; cd $BUILDSCRIPTDIR; fi
if [ -f $scriptdir/build-tools.sh ]; then . $scriptdir/build-tools.sh || { echo "Error building tools"; exit 1; }; cd $BUILDSCRIPTDIR; fi
if [ -f $scriptdir/build-crtls.sh ]; then . $scriptdir/build-crtls.sh || { echo "Error building crtls"; exit 1; }; cd $BUILDSCRIPTDIR; fi
if [ ! -z $CROSSBUILD ]; then
if [ $VERSION -ne 3 ]; then
cp -v $CROSSBINPATH/FreeImage.dll $prefix/bin
fi
if [ $VERSION -eq 1 ]; then
cp -v $CROSSBINPATH/libusb-1.0.dll $prefix/bin
fi
cp -v $CROSSLIBPATH/libstdc++-6.dll \
$CROSSLIBPATH/libgcc_s_sjlj-1.dll \
$prefix/bin
fi
echo "stripping installed binaries"
. ./strip_bins.sh
#---------------------------------------------------------------------------------
# Clean up temporary files and source directories
#---------------------------------------------------------------------------------
cd $BUILDSCRIPTDIR
if [ "$BUILD_DKPRO_AUTOMATED" != "1" ] ; then
echo
echo "Would you like to delete the build folders and patched sources? [Y/n]"
read answer
else
answer=y
fi
if [ "$answer" != "n" -a "$answer" != "N" ]; then
echo "Removing patched sources and build directories"
rm -fr $BUILDDIR
fi
echo
echo "note: Add the following to your environment; DEVKITPRO=$TOOLPATH $toolchain=$TOOLPATH/$package"
echo

View File

@ -1,22 +0,0 @@
#!/bin/bash
cd $BUILDDIR
for archive in $hostarchives
do
echo $archive
dir=$(echo $archive | sed -e 's/\(.*\)\.tar\..*/\1/' )
echo $dir
cd $BUILDDIR/$dir
if [ ! -f configured ]; then
CXXFLAGS=$cflags CFLAGS=$cflags LDFLAGS=$ldflags ./configure --prefix=$prefix --disable-dependency-tracking $CROSS_PARAMS || { echo "error configuring $archive"; exit 1; }
touch configured
fi
if [ ! -f built ]; then
$MAKE || { echo "error building $dir"; exit 1; }
touch built
fi
if [ ! -f installed ]; then
$MAKE install || { echo "error installing $dir"; exit 1; }
touch installed
fi
done

View File

@ -1,32 +0,0 @@
#!/bin/sh
#---------------------------------------------------------------------------------
# variables for unattended script execution
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
# Select package
#---------------------------------------------------------------------------------
# 0: User selects manually
# 1: devkitARM
# 2: devkitPPC
# 3: devkitPSP
#---------------------------------------------------------------------------------
BUILD_DKPRO_PACKAGE=1
#---------------------------------------------------------------------------------
# Toolchain installation directory, comment if not specified
#---------------------------------------------------------------------------------
BUILD_DKPRO_INSTALLDIR=$HOME/Library/devkitpro/r45
#---------------------------------------------------------------------------------
# Path to previously downloaded source packages, comment if not specified
#---------------------------------------------------------------------------------
BUILD_DKPRO_SRCDIR=$(realpath $(dirname $0)/../archive)
#---------------------------------------------------------------------------------
# Automated script execution
#---------------------------------------------------------------------------------
# 0: Ask to delete build folders & patched sources
# 1: Use defaults, don't pause for answers
#---------------------------------------------------------------------------------
BUILD_DKPRO_AUTOMATED=0

View File

@ -1,65 +0,0 @@
#!/bin/bash
VERSION=0
case "$BUILD_DKPRO_PACKAGE" in
"1" )
VERSION=1
;;
"2" )
VERSION=2
;;
"3" )
VERSION=3
;;
"4" )
VERSION=4
;;
esac
while [ $VERSION -eq 0 ]
do
echo
echo "Please select the toolchain you require"
echo
echo "1: devkitARM (gba gp32 ds)"
echo "2: devkitPPC (gamecube wii)"
echo "3: devkitPSP (PSP)"
read VERSION
if [ "$VERSION" -ne 1 -a "$VERSION" -ne 2 -a "$VERSION" -ne 3 ]
then
VERSION=0
fi
done
case "$VERSION" in
"1" )
GCC_VER=5.3.0
BINUTILS_VER=2.25.1
NEWLIB_VER=2.2.0
GDB_VER=7.10
basedir='dkarm-eabi'
package=devkitARM
target=arm-none-eabi
toolchain=DEVKITARM
;;
"2" )
GCC_VER=4.8.2
BINUTILS_VER=2.24
NEWLIB_VER=2.0.0
GDB_VER=7.7
basedir='dkppc'
package=devkitPPC
target=powerpc-eabi
toolchain=DEVKITPPC
;;
"3" )
GCC_VER=4.6.3
BINUTILS_VER=2.22
NEWLIB_VER=1.20.0
GDB_VER=7.4
basedir='dkpsp'
package=devkitPSP
target=psp
toolchain=DEVKITPSP
;;
esac

View File

@ -1,4 +0,0 @@
#!/usr/bin/env sh
./configure --prefix=$(realpath ..) --host=arm-none-eabi \
CPPFLAGS='-I../include' LDFLAGS='-L../lib'

Binary file not shown.

Binary file not shown.

Binary file not shown.