Imported PCXView example from devkitpro to be used for helds logo splashscreen.
This commit is contained in:
parent
e0a6821d19
commit
81c5944d18
|
@ -0,0 +1,137 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
# Clear the implicit built in rules
|
||||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(DEVKITARM)),)
|
||||
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM)
|
||||
endif
|
||||
|
||||
include $(DEVKITARM)/gba_rules
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# TARGET is the name of the output, if this ends with _mb generates a multiboot image
|
||||
# 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 := PCXView_mb
|
||||
BUILD := build
|
||||
SOURCES := src data
|
||||
INCLUDES :=
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
ARCH := -mthumb -mthumb-interwork
|
||||
|
||||
CFLAGS := -g -Wall -O0\
|
||||
-mcpu=arm7tdmi -mtune=arm7tdmi\
|
||||
-fomit-frame-pointer\
|
||||
-ffast-math \
|
||||
$(ARCH)
|
||||
|
||||
CFLAGS += $(INCLUDE)
|
||||
|
||||
ASFLAGS := $(ARCH)
|
||||
LDFLAGS = -g $(ARCH) -Wl,-Map,$(notdir $@).map
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# path to tools - this can be deleted if you set the path in windows
|
||||
#---------------------------------------------------------------------------------
|
||||
export PATH := $(DEVKITARM)/bin:$(PATH)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lgba
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(LIBGBA)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# 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 PATH := $(DEVKITARM)/bin:$(PATH)
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# automatically build a list of object files for our project
|
||||
#---------------------------------------------------------------------------------
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
PCXFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.pcx)))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# use CXX for linking C++ projects, CC for standard C
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(CPPFILES)),)
|
||||
#---------------------------------------------------------------------------------
|
||||
export LD := $(CC)
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
#---------------------------------------------------------------------------------
|
||||
export LD := $(CXX)
|
||||
#---------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OFILES := $(PCXFILES:.pcx=.o) $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of include paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of library paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib)
|
||||
|
||||
.PHONY: $(BUILD) clean
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
$(BUILD):
|
||||
@[ -d $@ ] || mkdir -p $@
|
||||
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||
|
||||
all : $(BUILD)
|
||||
#---------------------------------------------------------------------------------
|
||||
clean:
|
||||
@echo clean ...
|
||||
@rm -fr $(BUILD) $(TARGET).elf $(TARGET).gba
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).gba : $(OUTPUT).elf
|
||||
|
||||
$(OUTPUT).elf : $(OFILES)
|
||||
|
||||
%.o : %.pcx
|
||||
@echo $(notdir $<)
|
||||
@$(bin2o)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
|
@ -0,0 +1,109 @@
|
|||
# Microsoft Developer Studio Project File - Name="PCXView" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) External Target" 0x0106
|
||||
|
||||
CFG=PCXView - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "PCXView.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "PCXView.mak" CFG="PCXView - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "PCXView - Win32 Release" (based on "Win32 (x86) External Target")
|
||||
!MESSAGE "PCXView - Win32 Debug" (based on "Win32 (x86) External Target")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
|
||||
!IF "$(CFG)" == "PCXView - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Cmd_Line "NMAKE /f PCXView.mak"
|
||||
# PROP BASE Rebuild_Opt "/a"
|
||||
# PROP BASE Target_File "PCXView.exe"
|
||||
# PROP BASE Bsc_Name "PCXView.bsc"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Cmd_Line "make -r 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/'"
|
||||
# PROP Rebuild_Opt ""
|
||||
# PROP Target_File "PCXView.gba"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
!ELSEIF "$(CFG)" == "PCXView - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Cmd_Line "NMAKE /f PCXView.mak"
|
||||
# PROP BASE Rebuild_Opt "/a"
|
||||
# PROP BASE Target_File "PCXView.exe"
|
||||
# PROP BASE Bsc_Name "PCXView.bsc"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Cmd_Line "make -r 2>&1 | sed -e 's/\(.[a-zA-Z]\+\):\([0-9]\+\):/\1(\2):/'"
|
||||
# PROP Rebuild_Opt ""
|
||||
# PROP Target_File "PCXView.gba"
|
||||
# PROP Bsc_Name ""
|
||||
# PROP Target_Dir ""
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "PCXView - Win32 Release"
|
||||
# Name "PCXView - Win32 Debug"
|
||||
|
||||
!IF "$(CFG)" == "PCXView - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "PCXView - Win32 Debug"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\pcx_view.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\data\splash.pcx
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Makefile
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
|
@ -0,0 +1,29 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "PCXView"=.\PCXView.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
|
@ -0,0 +1 @@
|
|||
<Project name="template"><MagicFolder excludeFolders="CVS;.svn" filter="*.h" name="include" path="include\"></MagicFolder><MagicFolder excludeFolders="CVS;.svn" filter="*.c;*.cpp" name="source" path="src\"><File path="pcx_view.c"></File></MagicFolder><File path="Makefile"></File></Project>
|
|
@ -0,0 +1,69 @@
|
|||
[Project ID]
|
||||
Signature=UE Proj: v.1
|
||||
[Project Information]
|
||||
Filter=*.*
|
||||
Project Directory=C:\projects\gba\DevkitSamples\PCXView\
|
||||
Use Relative Directory=1
|
||||
Relative to Project File=1
|
||||
Project Wordfile=
|
||||
Project Tagfile=
|
||||
Create Tagfile=0
|
||||
Include Sub Directories=0
|
||||
[Open Files]
|
||||
Open File0=
|
||||
Open File Pos0=0
|
||||
Open File Line0=0
|
||||
Active File Index=2
|
||||
Open File Window Pos0=0,1,-1,-1,-4,-23,88,88,998,447
|
||||
Open File1=C:\projects\devkitPro\libnds\source\common\interrupts.c
|
||||
Open File Pos1=1024
|
||||
Open File Line1=0
|
||||
Open File Window Pos1=0,1,-1,-1,-4,-23,110,110,1024,473
|
||||
Open File2=C:\projects\devkitPro\libnds\include\nds\interrupts.h
|
||||
Active File Display Mode=-1
|
||||
Open File Pos2=2410
|
||||
Open File Line2=2658
|
||||
Open File Window Pos2=2,3,-1,-1,-4,-23,132,132,1046,495
|
||||
Open File3=C:\projects\devkitPro\libgba\include\gba_interrupt.h
|
||||
Open File Pos3=2165
|
||||
Open File Line3=1256
|
||||
Open File Window Pos3=0,1,-1,-1,-4,-23,154,154,1068,517
|
||||
Open File4=C:\projects\devkitPro\libgba\src\interrupt.c
|
||||
Open File Pos4=0
|
||||
Open File Line4=1076
|
||||
Open File Window Pos4=0,1,-1,-1,-4,-23,0,0,914,363
|
||||
Open File5=
|
||||
Open File Pos5=32
|
||||
Open File Line5=0
|
||||
Open File Window Pos5=2,3,-1,-1,-4,-23,132,132,1009,576
|
||||
Open File6=C:\projects\devkitPro\buildscripts\dka-crtls\ds_cart_crt0.s
|
||||
Open File Pos6=1793
|
||||
Open File Line6=1450
|
||||
Open File Window Pos6=0,1,-1,-1,-4,-23,154,154,1031,598
|
||||
Open File7=C:\projects\devkitPro\buildscripts\dka-crtls\ds_arm9_crt0.s
|
||||
Open File Pos7=679
|
||||
Open File Line7=0
|
||||
Open File Window Pos7=0,1,-1,-1,-4,-23,176,176,1053,620
|
||||
Open File8=C:\projects\devkitPro\buildscripts\dka-crtls\ds_arm9.ld
|
||||
Open File Pos8=2954
|
||||
Open File Line8=2479
|
||||
Open File Window Pos8=0,1,-1,-1,-4,-23,198,198,1075,642
|
||||
Open File9=
|
||||
Open File Pos9=0
|
||||
Open File Line9=1839
|
||||
Open File Window Pos9=0,1,-1,-1,-4,-23,88,88,782,357
|
||||
Open File10=C:\projects\mingw\gcc\devkitbuild\newlib-1.12.0\libgloss\README
|
||||
Open File Pos10=0
|
||||
Open File Line10=0
|
||||
Open File Window Pos10=2,3,-1,-1,-4,-23,110,110,804,379
|
||||
Open File11=
|
||||
[File View]
|
||||
Current Select=Project Files\source\src\pcx_view.c
|
||||
Scroll Position=0
|
||||
[Group]
|
||||
0=source
|
||||
1=
|
||||
[Files - source]
|
||||
0=src\pcx_view.c
|
||||
[Files]
|
||||
0=Makefile
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,63 @@
|
|||
//---------------------------------------------------------------------------------
|
||||
// GBA PCXView sample code for devkitARM - http://www.devkit.tk
|
||||
// Suitable for a splash screen for a game
|
||||
//---------------------------------------------------------------------------------
|
||||
#include "gba_video.h"
|
||||
#include "gba_systemcalls.h"
|
||||
#include "gba_input.h"
|
||||
#include "gba_interrupt.h"
|
||||
#include "pcx.h"
|
||||
#include "fade.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// header for binary data generated by bin2o macro in makefile
|
||||
//---------------------------------------------------------------------------------
|
||||
#include "splash_pcx.h"
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// storage space for palette data
|
||||
//---------------------------------------------------------------------------------
|
||||
u16 PaletteBuffer[256];
|
||||
|
||||
unsigned int frame;
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
void VblankInterrupt()
|
||||
//---------------------------------------------------------------------------------
|
||||
{
|
||||
frame += 1;
|
||||
ScanKeys();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// Program entry point
|
||||
//---------------------------------------------------------------------------------
|
||||
int main(void)
|
||||
//---------------------------------------------------------------------------------
|
||||
{
|
||||
// Set up the interrupt handlers
|
||||
InitInterrupt();
|
||||
|
||||
SetInterrupt( IE_VBL, VblankInterrupt);
|
||||
|
||||
// Enable Vblank Interrupt to allow VblankIntrWait
|
||||
EnableInterrupt(IE_VBL);
|
||||
|
||||
// Allow Interrupts
|
||||
REG_IME = 1;
|
||||
|
||||
SetMode( MODE_4 | BG2_ON ); // screen mode & background to display
|
||||
|
||||
DecodePCX(splash_pcx, (u16*)VRAM , PaletteBuffer);
|
||||
|
||||
FadeToPalette( PaletteBuffer, 60);
|
||||
|
||||
while (1)
|
||||
{
|
||||
VBlankIntrWait();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue