[Scummvm-cvs-logs] SF.net SVN: scummvm: [23461] scummvm/trunk/backends/platform/ds

ender at users.sourceforge.net ender at users.sourceforge.net
Thu Jul 20 22:40:11 CEST 2006


Revision: 23461
          http://svn.sourceforge.net/scummvm/?rev=23461&view=rev
Author:   ender
Date:     2006-07-09 08:32:06 -0700 (Sun, 09 Jul 2006)

Log Message:
-----------
Final fixes. Builds fine now, apart from a few still-missing-from-svn files

Modified Paths:
--------------
    scummvm/trunk/backends/platform/ds/arm7/Makefile
    scummvm/trunk/backends/platform/ds/arm7/source/main.cpp
    scummvm/trunk/backends/platform/ds/arm9/makefile

Modified: scummvm/trunk/backends/platform/ds/arm7/Makefile
===================================================================
--- scummvm/trunk/backends/platform/ds/arm7/Makefile	2006-07-09 14:46:04 UTC (rev 23460)
+++ scummvm/trunk/backends/platform/ds/arm7/Makefile	2006-07-09 15:32:06 UTC (rev 23461)
@@ -55,7 +55,7 @@
 # list of directories containing libraries, this must be the top level containing
 # include and lib
 #---------------------------------------------------------------------------------
-LIBDIRS	:=	$(DEVKITPRO)/libnds
+LIBDIRS	:=	$(DEVKITPRO)/libnds $(DEVKITPRO)/libnds/nds
  
  
 #---------------------------------------------------------------------------------
@@ -93,7 +93,7 @@
  
 export INCLUDE	:=	$(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) -I- -I$(CURDIR)/../commoninclude\
 					$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-					$(foreach dir,$(LIBDIRS),-I$(dir)/include/NDS)\
+					$(foreach dir,$(LIBDIRS),-I$(dir)/include/nds)\
 					-I$(CURDIR)/$(BUILD) 
  
 export LIBPATHS	:=	$(foreach dir,$(LIBDIRS),-L$(dir)/lib)
@@ -216,221 +216,3 @@
 #---------------------------------------------------------------------------------------
 endif
 #---------------------------------------------------------------------------------------
-#---------------------------------------------------------------------------------
-.SUFFIXES:
-#---------------------------------------------------------------------------------
- 
-#---------------------------------------------------------------------------------
-# 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	:=	arm7
-BUILD		:=	build
-SOURCES	:=	gfx source data  
-INCLUDES	:=	include build
- 
-#---------------------------------------------------------------------------------
-# options for code generation
-#---------------------------------------------------------------------------------
-ARCH	:=	-mthumb-interwork
-
-# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD
-# *insists* it has a FPU or VFP, and it won't take no for an answer!
-CFLAGS	:=	-g -Wall -O2\
- 		-mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer\
-		-ffast-math \
-		$(ARCH)
-
-CFLAGS	+=	$(INCLUDE) -DARM7
-
-CXXFLAGS	:=	$(CFLAGS) -fno-exceptions -fno-rtti
-ASFLAGS	:=	-g $(ARCH)
-LDFLAGS	:=	-g $(ARCH) -mno-fpu
-
-#---------------------------------------------------------------------------------
-# path to tools - this can be deleted if you set the path in windows
-#---------------------------------------------------------------------------------
-# export PATH		:=	/d/dev/ds/devkitARM_r11/bin:/bin
- 
-#---------------------------------------------------------------------------------
-# PATH to ndslib - just make a system variable called NDSLIBPATH and be done with it
-#---------------------------------------------------------------------------------
-# NDSLIBPATH	:=	/d/dev/ds/ndslib/
- 
-#---------------------------------------------------------------------------------
-# the prefix on the compiler executables
-#---------------------------------------------------------------------------------
-PREFIX			:=	arm-eabi-
-#---------------------------------------------------------------------------------
-# 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	:=	$(DEVKITPRO)/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 CC		:=	$(PREFIX)gcc
-export CXX		:=	$(PREFIX)g++
-export AR		:=	$(PREFIX)ar
-export OBJCOPY	:=	$(PREFIX)objcopy
-#---------------------------------------------------------------------------------
-# use CXX for linking C++ projects, CC for standard C
-#---------------------------------------------------------------------------------
-export LD		:=	$(CXX)
-#export LD		:=	$(CC)
- 
-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)))
-BINFILES	:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.bin)))
-PALFILES	:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.pal)))
-RAWFILES	:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.raw)))
-MAPFILES	:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.map)))
- 
-export OFILES	:=	$(MAPFILES:.map=.o) $(RAWFILES:.raw=.o) $(PALFILES:.pal=.o) $(BINFILES:.bin=.o) $(PCXFILES:.pcx=.o)\
-					$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
- 
-export INCLUDE	:=	$(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) -I- -I$(CURDIR)/../commoninclude\
-					$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
-					$(foreach dir,$(LIBDIRS),-I$(dir)/include/NDS)\
-					-I$(CURDIR)/$(BUILD) 
- 
-export LIBPATHS	:=	$(foreach dir,$(LIBDIRS),-L$(dir)/lib)
- 
-.PHONY: $(BUILD) clean
- 
-#---------------------------------------------------------------------------------
-$(BUILD):
-	@[ -d $@ ] || mkdir -p $@
-	@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
- 
-#---------------------------------------------------------------------------------
-clean:
-	@echo clean ...$(TARGET)
-	@rm -fr $(BUILD) *.bin
- 
- 
-#---------------------------------------------------------------------------------
-else
- 
-DEPENDS	:=	$(OFILES:.o=.d)
- 
-#---------------------------------------------------------------------------------
-# main targets
-#---------------------------------------------------------------------------------
-
-$(OUTPUT).bin	:	$(OUTPUT).elf
- 
-$(OUTPUT).elf	:	$(OFILES)
- 
-
-
-#---------------------------------------------------------------------------------
-%.bin: %.elf
-	@echo built ... $(notdir $@)
-	@$(OBJCOPY) -O binary  $(TARGET).elf $@
- 
-#---------------------------------------------------------------------------------
-%.elf:
-	echo ELF
-	@$(LD)  $(LDFLAGS) -specs=ds_arm7.specs $(OFILES) $(LIBPATHS) $(LIBS) -o $(TARGET).elf
- 
- 
- 
-#---------------------------------------------------------------------------------
-# Compile Targets for C/C++
-#---------------------------------------------------------------------------------
- 
-#---------------------------------------------------------------------------------
-%.o : %.cpp
-	@echo $(notdir $<)
-	@echo $(CXX) -MM $(CXXFLAGS) -o $*.d $<
-	@$(CXX) -MM $(CXXFLAGS) -o $*.d $<
-	@$(CXX) $(CXXFLAGS) -c $< -o$@
- 
-#---------------------------------------------------------------------------------
-%.o : %.c
-	@echo $(notdir $<)
-	@$(CC) -MM $(CFLAGS) -o $*.d $<
-	@$(CC)  $(CFLAGS) -c $< -o$@
- 
-#---------------------------------------------------------------------------------
-%.o : %.s
-	@echo $(notdir $<)
-	@$(CC) -MM $(CFLAGS) -o $*.d $<
-	@$(CC)  $(ASFLAGS) -c $< -o$@
- 
-define bin2o
-	cp $(<) $(*).tmp
-	$(OBJCOPY) -I binary -O elf32-littlearm -B arm \
-	--rename-section .data=.rodata \
-	--redefine-sym _binary_$*_tmp_start=$*\
-	--redefine-sym _binary_$*_tmp_end=$*_end\
-	--redefine-sym _binary_$*_tmp_size=$*_size\
-	$(*).tmp $(@)
-	echo "extern const u8" $(*)"[];" > $(*).h
-	echo "extern const u32" $(*)_size[]";" >> $(*).h
-	rm $(*).tmp
-endef
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.pcx
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.bin
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.raw
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.pal
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.map
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
-
-#---------------------------------------------------------------------------------
-%.o	:	%.mdl
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
-
- 
--include $(DEPENDS)
- 
-#---------------------------------------------------------------------------------------
-endif
-#---------------------------------------------------------------------------------------
\ No newline at end of file

Modified: scummvm/trunk/backends/platform/ds/arm7/source/main.cpp
===================================================================
--- scummvm/trunk/backends/platform/ds/arm7/source/main.cpp	2006-07-09 14:46:04 UTC (rev 23460)
+++ scummvm/trunk/backends/platform/ds/arm7/source/main.cpp	2006-07-09 15:32:06 UTC (rev 23461)
@@ -32,8 +32,9 @@
 #include <arm7/clock.h>
 #include <stdlib.h>
 #include <string.h>
+#include <registers_alt.h>
 
-#include <nds/scummvm_ipc.h>
+#include <NDS/scummvm_ipc.h>
 //////////////////////////////////////////////////////////////////////
 
 
@@ -563,568 +564,3 @@
  
 //////////////////////////////////////////////////////////////////////
 
-/* ScummVMDS - Scumm Interpreter DS Port
- * Copyright (C) 2002-2004 The ScummVM project and Neil Millstone
- *
- * 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.
- *
- * $Header: /cvsroot/scummvm/scummvm/backends/fs/fs.cpp,v 1.3.2.1 2004/12/18 02:33:52 fingolfin Exp $
- */
-
-//////////////////////////////////////////////////////////////////////
-// Simple ARM7 stub (sends RTC, TSC, and X/Y data to the ARM 9)
-// -- joat
-// -- modified by Darkain and others
-//////////////////////////////////////////////////////////////////////
-
- 
-#include <nds.h>
- 
-#include <bios.h>
-#include <arm7/touch.h>
-#include <arm7/clock.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <nds/scummvm_ipc.h>
-//////////////////////////////////////////////////////////////////////
-
-
-#define TOUCH_CAL_X1 (*(vs16*)0x027FFCD8)
-#define TOUCH_CAL_Y1 (*(vs16*)0x027FFCDA)
-#define TOUCH_CAL_X2 (*(vs16*)0x027FFCDE)
-#define TOUCH_CAL_Y2 (*(vs16*)0x027FFCE0)
-#define SCREEN_WIDTH    256
-#define SCREEN_HEIGHT   192
-s32 TOUCH_WIDTH  = TOUCH_CAL_X2 - TOUCH_CAL_X1;
-s32 TOUCH_HEIGHT = TOUCH_CAL_Y2 - TOUCH_CAL_Y1;
-s32 TOUCH_OFFSET_X = ( ((SCREEN_WIDTH -60) * TOUCH_CAL_X1) / TOUCH_WIDTH  ) - 28;
-s32 TOUCH_OFFSET_Y = ( ((SCREEN_HEIGHT-60) * TOUCH_CAL_Y1) / TOUCH_HEIGHT ) - 28;
-
-vu8* soundData;
-
-vu8* soundBuffer;
-vu8* arm9Buffer;
-bool soundFilled[4];
-
-int playingSection;
-
-bool needSleep = false;
-int temp;
-
-int adpcmBufferNum = 0;
-
-// those are pixel positions of the two points you click when calibrating
-#define TOUCH_CNTRL_X1   (*(vu8*)0x027FFCDC)
-#define TOUCH_CNTRL_Y1   (*(vu8*)0x027FFCDD)
-#define TOUCH_CNTRL_X2   (*(vu8*)0x027FFCE2)
-#define TOUCH_CNTRL_Y2   (*(vu8*)0x027FFCE3)
-
-
-//////////////////////////////////////////////////////////////////////
-
-/*
-void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 vol=0x7F,  u8 pan=63, u8 format=0) {
-  SCHANNEL_TIMER(channel)  = SOUND_FREQ(sampleRate);
-  SCHANNEL_SOURCE(channel) = (uint32)data;
-  SCHANNEL_LENGTH(channel) = bytes;
-  SCHANNEL_CR(channel)     = SOUND_ENABLE | SOUND_ONE_SHOT | SOUND_VOL(vol) | SOUND_PAN(pan) | (format==1?SOUND_8BIT:SOUND_16BIT);
-}
-
-
-s8 getFreeSoundChannel() {
-  for (int i=0; i<16; i++) {
-    if ( (SCHANNEL_CR(i) & SOUND_ENABLE) == 0 ) return i;
-  }
-  return -1;
-}
-*/
-
-
-s8 getFreeSoundChannel() {
-//  return 0;
-  for (int i=0; i<16; i++) {
-    if ( (SCHANNEL_CR(i) & SCHANNEL_ENABLE) == 0 ) return i;
-  }
-  return -1;
-}
-
-void startSound(int sampleRate, const void* data, uint32 bytes, u8 channel=0, u8 vol=0x7F,  u8 pan=63, u8 format=0) {
-  REG_IME = IME_DISABLE;
-
-  channel = getFreeSoundChannel();
-/*  if (format == 2) {
-	channel = 1;
-  } else {
-	channel = 0;
-  }*/
-  
-  if (channel > 1) channel = 1;
-  
-  bytes &= ~7;		// Multiple of 4 bytes!
-//  bytes += 4;
-  
-  SCHANNEL_CR(channel) = 0;
-  SCHANNEL_TIMER(channel)  = SOUND_FREQ(sampleRate);
-  SCHANNEL_SOURCE(channel) = ((uint32) (data));
-  SCHANNEL_LENGTH(channel) = ((bytes & 0x7FFFFFFF) >> 2);
-  SCHANNEL_REPEAT_POINT(channel) = 0;
-
-  SCHANNEL_CR(channel + 2) = 0;
-  SCHANNEL_TIMER(channel + 2)  = SOUND_FREQ(sampleRate);
-  SCHANNEL_SOURCE(channel + 2) = ((uint32) (data));
-  SCHANNEL_LENGTH(channel + 2) = ((bytes & 0x7FFFFFFF) >> 2);
-  SCHANNEL_REPEAT_POINT(channel + 2) = 0;
-  
-  uint32 flags = SCHANNEL_ENABLE | SOUND_VOL(vol) | SOUND_PAN(pan);
-
-  switch (format) {
-	case 1: {
-		flags |= SOUND_8BIT;
-		flags |= SOUND_REPEAT;// | (1 << 15);
-		break;
-	}
-	
-	case 0: {
-		flags |= SOUND_16BIT;
-		flags |= SOUND_REPEAT;// | (1 << 15);
-		break;
-	}
-	
-	case 2: {
-		flags |= SOUND_FORMAT_ADPCM;
-		flags |= SOUND_ONE_SHOT;// | (1 << 15);
-		
-		SCHANNEL_SOURCE(channel) = (unsigned int) IPC->adpcm.buffer[0];
-		//bytes += 32;
-		SCHANNEL_LENGTH(channel) = (((bytes + 4) & 0x7FFFFFFF) >> 2);
-		
-		SCHANNEL_CR(channel + 1) = 0;
-		SCHANNEL_SOURCE(channel + 1) = (unsigned int) IPC->adpcm.buffer[0];
-		SCHANNEL_LENGTH(channel + 1) = (((bytes + 4) & 0x7FFFFFFF) >> 2);
-		SCHANNEL_TIMER(channel + 1) = SOUND_FREQ(sampleRate);
-		SCHANNEL_REPEAT_POINT(channel + 1) = 0;
-		SCHANNEL_CR(channel + 1) = flags;
-		temp = bytes;
-		adpcmBufferNum = 0;
-		break;
-	}
-  }
-	
-  
-//  if (bytes & 0x80000000) {
-//    flags |= SOUND_REPEAT;
-//  } else {
-//  }
-
-  
-   
-  
-  soundData = (vu8* ) data;
-
-  SCHANNEL_CR(channel)     = flags;
-  SCHANNEL_CR(channel + 2)     = flags;
-
-
-
-  if (channel == 0) {
-	for (volatile int i = 0; i < 16384 * 2; i++) {
-		// Delay loop - this makes everything stay in sync!
-	}
-		
-	TIMER0_CR = 0;
-	TIMER0_DATA = SOUND_FREQ(sampleRate) * 2;
-	TIMER0_CR = TIMER_ENABLE | TIMER_DIV_1;
-		
-	TIMER1_CR = 0;
-	TIMER1_DATA = 65536 - ((bytes & 0x7FFFFFFF) >> 3);		// Trigger four times during the length of the buffer
-	TIMER1_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE;
-
-    playingSection = 0;
-  } else {
-	for (volatile int i = 0; i < 16384 * 2; i++) {
-		// Delay loop - this makes everything stay in sync!
-	}
-		
-	TIMER2_CR = 0;
-	TIMER2_DATA = SOUND_FREQ(sampleRate) * 2;
-	TIMER2_CR = TIMER_ENABLE | TIMER_DIV_1;
-		
-	TIMER3_CR = 0;
-	TIMER3_DATA = 65536 - ((bytes & 0x7FFFFFFF) >> 3);		// Trigger four times during the length of the buffer
-	TIMER3_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE;
-	
-	for (int r = 0; r < 4; r++) {
-//		IPC->streamFillNeeded[r] = true;
-	}
-	
-	IPC->streamPlayingSection = 0;
-  }
-
-
-
-//  IPC->fillSoundFirstHalf = true;
-//  IPC->fillSoundSecondHalf = true;
-//  soundFirstHalf = true;
-  
-  REG_IME = IME_ENABLE;
-}
-
-void stopSound(int chan) {
- SCHANNEL_CR(chan) = 0;
-}
-
-void DummyHandler() {
-	REG_IF = REG_IF;
-}
-
-uint16 powerManagerWrite(uint32 command, u32 data, bool enable) {
-
-  uint16 result;
-  SerialWaitBusy();
-
-  // Write the command and wait for it to complete
-  REG_SPICNT = SPI_ENABLE | SPI_BAUD_1MHz | (1 << 11);
-  REG_SPIDATA = command | 0x80;
-  SerialWaitBusy();
-
-  // Write the second command and clock in the data
-  REG_SPICNT = SPI_ENABLE | SPI_BAUD_1MHz;
-  REG_SPIDATA = 0;
-  SerialWaitBusy();
-  
-  result = REG_SPIDATA & 0xFF;
-
-
-
-  // Write the command and wait for it to complete
-  REG_SPICNT = SPI_ENABLE | SPI_BAUD_1MHz | (1 << 11);
-  REG_SPIDATA = command;
-  SerialWaitBusy();
-
-  // Write the second command and clock in the data
-  REG_SPICNT = SPI_ENABLE | SPI_BAUD_1MHz;
-  REG_SPIDATA = enable? (result | data): (result & ~data);
-  SerialWaitBusy();
-}
-
-/*
-void performSleep() {
-
-  powerManagerWrite(0, 0x30, true);
-
-  // Here, I set up a dummy interrupt handler, then trigger all interrupts.
-  // These are just aknowledged by the handler without doing anything else.
-  // Why?  Because without it the sleep mode will only happen once, and then
-  // never again.  I got the idea from reading the MoonShell source.
-  IME = 0;
-  u32 irq = (u32) IRQ_HANDLER;
-  IRQ_HANDLER = DummyHandler;
-  IF = ~0;
-  IME = 1;
-  
-  
-  // Now save which interrupts are enabled, then set only the screens unfolding
-  // interrupt to be enabled, so that the first interrupt that happens is the
-  // one I want.
-  int saveInts = IE;
-  
-  
-  
-  IE = IRQ_TIMER0;		// Screens unfolding interrupt
-
-  // Now call the sleep function in the bios
-  bool b;
-  do {
-    TIMER0_CR = 0;
-	TIMER0_DATA = TIMER_FREQ(20);
-	TIMER0_CR = TIMER_ENABLE | TIMER_DIV_64;
-	
-	swiDelay(100);
-  
-	swiSleep();
-
-	swiDelay(100);
-	
-	powerManagerWrite(0, 0x30, b = !b);	
-  } while (!(TIMER0_CR & TIMER_ENABLE));
-  
-  TIMER0_CR = 0;
-
-  // We're back from sleep, now restore the interrupt state and IRQ handler  
-  IRQ_HANDLER = (void (*)()) irq;
-  IE = saveInts;
-  IF = ~0;
-  IME = 1;
-
-  
-  
-  powerManagerWrite(0, 0x30, false);
-}
-*/
-
-
-void performSleep() {
-  powerManagerWrite(0, 0x30, true);
-
-  IPC->performArm9SleepMode = true;	// Tell ARM9 to sleep
-  
-//  u32 irq = (u32) IRQ_HANDLER;
-//  IRQ_HANDLER = DummyHandler;
-//  POWER_CR &= ~POWER_SOUND;
-  
-//  int saveInts = REG_IE;
-//  REG_IE = (1 << 22) | IRQ_VBLANK;		// Lid open
-//  *((u32*) (0x0380FFF8)) = *((u32*) (0x0380FFF8)) | (REG_IE & REG_IF);
-//  VBLANK_INTR_WAIT_FLAGS = IRQ_VBLANK;
-
-  
-  int r = 0;
-  while ((REG_KEYXY & (1 << 7))) {		// Wait for lid to open
-	swiDelay(1000000);
-	r++;
-  }
-  
-//  IRQ_HANDLER = (void (*)()) irq;
-  IPC->performArm9SleepMode = false;	// Tell ARM9 to wake up
-//  REG_IE = saveInts;
-  
-//  POWER_CR |= POWER_SOUND;
- 
-  powerManagerWrite(0, 0x30, false);
-}
-
-//////////////////////////////////////////////////////////////////////
-
-
-void InterruptHandler(void) {
-  static int heartbeat = 0;
-
-  if (REG_IF & IRQ_TIMER1) {
-	
-	IPC->fillNeeded[playingSection] = true;
-	soundFilled[playingSection] = false;
-	  
-	if (playingSection == 3) {
-//		IME = IME_DISABLED;
-		
-	//	while (SCHANNEL_CR(0) & SCHANNEL_ENABLE) {
-	//	}
-//		SCHANNEL_CR(0) &= ~SCHANNEL_ENABLE;	
-		
-//		SCHANNEL_CR(0) |= SCHANNEL_ENABLE;
-//		TIMER1_CR = 0;
-//		TIMER1_CR = TIMER_ENABLE | TIMER_IRQ_REQ | TIMER_CASCADE;
-		
-		playingSection = 0;
-		
-//		IME = IME_ENABLED;
-	} else {
-		playingSection++;
-	}
-	
-	IPC->playingSection = playingSection;
-	
-/*	for (int r = 0; r < 4; r++) {
-		//if ((!soundFilled[r]) && (!IPC->fillNeeded[playingSection])) {
-			memcpy((void *) (soundBuffer + (r * 1024)), (void *) (arm9Buffer + (r * 1024)), 1024);
-
-			vu16* p = (vu16 *) (soundBuffer);
-			//for (int t = 0; t < 2048; t++) {
-		//		*(p + t) = (t & 1)? 0xF000: 0x0000;
-			//}
-			soundFilled[r] = true;
-		//}
-	}*/
-	
-
-    REG_IF = IRQ_TIMER1;
-  }
-  
-
-  if (REG_IF & IRQ_TIMER3) {
-	while (IPC->adpcm.semaphore);		// Wait for buffer to become free if needed
-	IPC->adpcm.semaphore = true;		// Lock the buffer structure to prevent clashing with the ARM7
-		
-	IPC->streamFillNeeded[IPC->streamPlayingSection] = true;
-	  
-	if (IPC->streamPlayingSection == 3) {
-		IPC->streamPlayingSection = 0;
-	} else {
-		IPC->streamPlayingSection++;
-	}
-	
-    REG_IF = IRQ_TIMER3;
-	
-	IPC->adpcm.semaphore = false;
-  }
-
-
-//  IPC->performArm9SleepMode = false;
-
-	// precalculate some values
-//  static int16 TOUCH_WIDTH  = TOUCH_CAL_X2 - TOUCH_CAL_X1;
-//  static int16 TOUCH_HEIGHT = TOUCH_CAL_Y2 - TOUCH_CAL_Y1;
-//  static int16 CNTRL_WIDTH  = TOUCH_CNTRL_X2 - (TOUCH_CNTRL_X1 - 8);
-//  static int16 CNTRL_HEIGHT = TOUCH_CNTRL_Y2 - (TOUCH_CNTRL_Y1 - 8);
-  
-  
-  
- 
- 
-  if (REG_IF & IRQ_VBLANK) {
-    uint16 but=0, x=0, y=0, xpx=0, ypx=0, z1=0, z2=0, batt=0, aux=0;
-    int t1=0, t2=0;
-    uint32 temp=0;
-    uint8 ct[sizeof(IPC->curtime)];
-
-    
-    // Update the heartbeat
-    heartbeat++;
- 
-    // Read the X/Y buttons and the /PENIRQ line
-    but = REG_KEYXY;
-    if (!(but & 0x40)) {
-      // Read the touch screen
-	  touchPosition p = touchReadXY();
-
-//      x = touchRead(TSC_MEASURE_X);
- //     y = touchRead(TSC_MEASURE_Y);
-	  
-	  x = p.x;
-	  y = p.y;
-	  
-	  xpx = p.px;
-	  ypx = p.py;
-	  
-//      xpx = ( ((SCREEN_WIDTH -60) * x) / TOUCH_WIDTH  ) - TOUCH_OFFSET_X;
-  //    ypx = ( ((SCREEN_HEIGHT-60) * y) / TOUCH_HEIGHT ) - TOUCH_OFFSET_Y;
-	  
-//	  xpx = (IPC->touchX - (int16) TOUCH_CAL_X1) * CNTRL_WIDTH  / TOUCH_WIDTH  + (int16) (TOUCH_CNTRL_X1 - 8);
-	//  ypx = (IPC->touchY - (int16) TOUCH_CAL_Y1) * CNTRL_HEIGHT / TOUCH_HEIGHT + (int16) (TOUCH_CNTRL_Y1 - 8); 
-
-	  
-      z1 = touchRead(TSC_MEASURE_Z1);
-      z2 = touchRead(TSC_MEASURE_Z2);
-    }
-	
-    if (but & (1 << 7)) {		// Check if screen is folded
-	  needSleep = true;
-	}
-	
-
-    batt = touchRead(TSC_MEASURE_BATTERY);
-    aux  = touchRead(TSC_MEASURE_AUX);
-
-    // Read the time
-    rtcGetTime((uint8 *)ct);
-    BCDToInteger((uint8 *)&(ct[1]), 7);
- 
-    // Read the temperature
-    temp = touchReadTemperature(&t1, &t2);
- 
-    // Update the IPC struct
-    IPC->heartbeat = heartbeat;
-    IPC->buttons   = but;
-    IPC->touchX    = x;
-    IPC->touchY    = y;
-    IPC->touchXpx  = xpx;
-    IPC->touchYpx  = ypx;
-    IPC->touchZ1   = z1;
-    IPC->touchZ2   = z2;
-    IPC->battery   = batt;
-    IPC->aux       = aux;
-
-    for(u32 i=0; i<sizeof(ct); i++) {
-      IPC->curtime[i] = ct[i];
-    }
-
-    IPC->temperature = temp;
-    IPC->tdiode1 = t1;
-    IPC->tdiode2 = t2;
-
-   
-
-	//sound code  :)
-    TransferSound *snd = IPC->soundData;
-    IPC->soundData = 0;
-    if (snd) {
-      for (int i=0; i<snd->count; i++) {
-        s8 chan = getFreeSoundChannel();
-		if (snd->data[i].rate > 0) {
-			if (chan >= 0) {
-			  startSound(snd->data[i].rate, snd->data[i].data, snd->data[i].len, chan, snd->data[i].vol, snd->data[i].pan, snd->data[i].format);
-			}
-		} else {
-			stopSound(-snd->data[i].rate);
-		}
-      }
-    } 
-
-    REG_IF = IRQ_VBLANK;
-  }
- 
-}
- 
-
-//////////////////////////////////////////////////////////////////////
- 
-
-int main(int argc, char ** argv) {
-  // Reset the clock if needed
-  rtcReset();
-
-  //enable sound
-  powerON(POWER_SOUND);
-  SOUND_CR = SOUND_ENABLE | SOUND_VOL(0x7F);
-  IPC->soundData = 0;
-  IPC->reset = false;
-  
-  
-  for (int r = 0; r < 8; r++) {
-	IPC->adpcm.arm7Buffer[r] = (u8 *) malloc(512);
-  }
-  
-  for (int r = 0; r < 4; r++) {
-	soundFilled[r] = false;
-  }
-
- 
-  // Set up the interrupt handler
-  REG_IME = 0;
-  IRQ_HANDLER = &InterruptHandler;
-  REG_IE = IRQ_VBLANK | IRQ_TIMER1 | IRQ_TIMER3;
-  REG_IF = ~0;
-  DISP_SR = DISP_VBLANK_IRQ;
-  REG_IME = 1;
-  
-  
-
-  // Keep the ARM7 out of main RAM
-  while (1) {
-	if (needSleep) {
-		performSleep();
-		needSleep = false;
-	}
-//	if (IPC->reset) {
-//		swiSoftReset();
-//	}
-  }
-  return 0;
-}
-
- 
-//////////////////////////////////////////////////////////////////////
-

Modified: scummvm/trunk/backends/platform/ds/arm9/makefile
===================================================================
--- scummvm/trunk/backends/platform/ds/arm9/makefile	2006-07-09 14:46:04 UTC (rev 23460)
+++ scummvm/trunk/backends/platform/ds/arm9/makefile	2006-07-09 15:32:06 UTC (rev 23461)
@@ -259,264 +259,3 @@
 #	$(MKDIR) $(*D)/$(DEPDIR)
 #	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
 	
-#BUILD_PLUGINS = 1
-libndsdir = $(DEVKITPRO)/libnds
-
-DS_SCUMM_BUILD = 1
-
-#DS_NON_SCUMM_BUILD = 1
-
-USE_MAD = 1
-
-VPATH = $(srcdir)
-
-# Command to build libmad is:
-# ./configure --host=arm-elf --enable-speed --enable-sso -enable-fpm=arm CFLAGS='-specs=ds_arm9.specs -mthumb-interwork'
-
-ifdef DS_NON_SCUMM_BUILD
-	DEFINES = -DDS_NON_SCUMM_BUILD
-	DISABLE_HE = 1
-	DISABLE_SCUMM = 1
-	DISABLE_SCUMM_7_8 = 1
-	#DISABLE_SIMON = 1
-	#DISABLE_SKY = 1
-	DISABLE_SWORD1 = 1
-	DISABLE_SWORD2 = 1
-	#DISABLE_QUEEN = 1
-	DISABLE_SAGA = 1
-	DISABLE_KYRA = 1
-	#DISABLE_GOB = 1
-	DISABLE_LURE = 1
-	DISABLE_CINE = 1
-	DISABLE_AGI = 1
-	BUILD=scummvm-B
-endif
-
-ifdef DS_SCUMM_BUILD
-	DEFINES = -DDS_SCUMM_BUILD
-	DISABLE_HE = 1
-	#DISABLE_SCUMM = 1
-	DISABLE_SCUMM_7_8 = 1
-	DISABLE_SIMON = 1
-	DISABLE_SKY = 1
-	DISABLE_SWORD1 = 1
-	DISABLE_SWORD2 = 1
-	DISABLE_QUEEN = 1
-	DISABLE_SAGA = 1
-	DISABLE_KYRA = 1
-	DISABLE_GOB = 1
-	DISABLE_LURE = 1
-	DISABLE_CINE = 1
-	DISABLE_AGI = 1
-	BUILD=scummvm-A
-endif
-
-ARM7BIN	:= -7 $(CURDIR)/../../arm7/arm7.bin
-ICON 		:= -b ../../../logo.bmp "ScummVM;By Neil Millstone;"
-
-CC      = arm-eabi-gcc
-CXX     = arm-eabi-g++
-
-CFLAGS	=	-Wno-multichar -Wall -Os\
-		-Wno-multichar -mcpu=arm9tdmi -mtune=arm9tdmi \
- 		-mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer\
-		-ffast-math -mthumb-interwork
-		
-CXXFLAGS=	$(CFLAGS) -Wno-non-virtual-dtor	 -Wno-non-virtual-dtor \
-		-fno-exceptions -fno-rtti
-
-ASFLAGS = -mcpu=arm9tdmi -mthumb-interwork
-DEFINES += -D__DS__ -DNDS -DARM9 -DNONSTANDARD_PORT -DDISABLE_FANCY_THEMES
-ifdef USE_MAD
-	DEFINES += -DUSE_MAD
-endif
-
-LDFLAGS = -specs=ds_arm9.specs -mthumb-interwork -mno-fpu -Wl,-Map,map.txt
-
-INCLUDES= -I./ -I$(portdir)/$(BUILD) -I$(srcdir) -I$(srcdir)/common -I$(portdir)/source -I$(portdir)/source/compressor -I$(portdir)/source/fat \
-			-I$(srcdir)/backends/fs  -I$(srcdir)/backends/fs/ds -I$(portdir)/data -I$(libndsdir)/include -I$(portdir)/../commoninclude\
-			-I$(srcdir)/scumm -I$(libndsdir)/include -I$(libndsdir)/include/nds -I$(srcdir)/engines -I$(portdir)/source/mad
-			
-
-LIBS	= -lm -L$(libndsdir)/lib -L$(portdir)/lib -lnds9
-ifdef USE_MAD
-	LIBS += -lmad
-endif
-
-#-Lscumm -lscumm -Lbase -lbase -Lcommon -lcommon -Lgraphics -lgraphics -Lgui -lgui -Lsound -lsound
-EXECUTABLE = scummvm.elf
-PLUGIN_PREFIX =
-PLUGIN_SUFFIX = .plg
-PLUGIN_EXTRA_DEPS = plugin.x plugin.syms scummvm.elf
-PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,-Tplugin.x,--just-symbols,scummvm.elf,--retain-symbols-file,plugin.syms -L$(ronindir)/lib
-MKDIR = mkdir -p
-RM = rm -f
-RM_REC = rm -rf
-AR = arm-eabi-ar cru
-RANLIB = arm-eabi-ranlib
-OBJCOPY = arm-eabi-objcopy
-AS = arm-eabi-as
-HAVE_GCC3 = true
-DISABLE_SCALERS = true
-
-ifdef BUILD_PLUGINS
-DEFINES += -DDYNAMIC_MODULES
-PRE_OBJS_FLAGS = -Wl,--whole-archive
-POST_OBJS_FLAGS = -Wl,--no-whole-archive
-endif
-
-PORT_OBJS :=	$(portdir)/source/blitters.o $(portdir)/source/cdaudio.o $(portdir)/source/dsmain.o \
-		$(portdir)/../../../fs/ds/ds-fs.o $(portdir)/source/gbampsave.o $(portdir)/source/scummhelp.o\
-		$(portdir)/source/osystem_ds.o $(portdir)/source/portdefs.o $(portdir)/source/ramsave.o\
-		$(portdir)/source/scummconsole.o $(portdir)/source/touchkeyboard.o $(portdir)/source/zipreader.o\
-		$(portdir)/source/dsoptions.o
-		
-DATA_OBJS := $(portdir)/data/icons.o $(portdir)/data/keyboard.o $(portdir)/data/keyboard_pal.o $(portdir)/data/default_font.o
-			
-		
-COMPRESSOR_OBJS := $(portdir)/source/compressor/lz.o
-
-FAT_OBJS :=  $(portdir)/source/fat/disc_io.o $(portdir)/source/fat/gba_nds_fat.o\
-			$(portdir)/source/fat/io_fcsr.o $(portdir)/source/fat/io_m3cf.o\
-			$(portdir)/source/fat/io_mpcf.o $(portdir)/source/fat/io_sccf.o\
-			$(portdir)/source/fat/io_m3sd.o\
-			$(portdir)/source/fat/io_nmmc.o $(portdir)/source/fat/io_scsd.o \
-			$(portdir)/source/fat/io_m3sd_asm.o $(portdir)/source/fat/io_scsd_asm.o 
-			
-			
-			
-OBJS := $(DATA_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS) 
-		
-
-		
-MODULE_DIRS += .
-
-ndsall:
-	@[ -d $(BUILD) ] || mkdir -p $(BUILD)
-	make -C ./$(BUILD) -f ../makefile scummvm.nds
-
-include $(srcdir)/Makefile.common
-
-clean:
-	$(RM) $(OBJS) $(EXECUTABLE)
-	rm -fr $(BUILD)
-
-plugin_dist :
-	find . -name '*.plg' | while read p; do \
-	  sh-elf-strip -g -o "`basename \"$$p\" | tr '[:lower:]' '[:upper:]'`" "$$p"; \
-	done
-
-dist : SCUMMVM.BIN plugins plugin_dist
-
-
-#---------------------------------------------------------------------------------
-# canned command sequence for binary data
-#---------------------------------------------------------------------------------
-#define bin2o
-#	bin2s $< | $(AS) -mthumb -mthumb-interwork -o $(@)
-#	echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_raw_end[];" > `(echo $(<F) | tr . _)`.h
-#	echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_raw[];" >> `(echo $(<F) | tr . _)`.h
-#	echo "extern const u32" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_raw_size";" >> `(echo $(<F) | tr . _)`.h
-#endef
-
-
-define bin2o
-	bin2s $< | $(AS) -mthumb -mthumb-interwork -o $(@)
-	echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end[];" > `(echo $(<F) | tr . _)`.h
-	echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"[];" >> `(echo $(<F) | tr . _)`.h
-	echo "extern const u32" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size";" >> `(echo $(<F) | tr . _)`.h
-endef
-
-
-#define bin2o
-#	@echo $(*)
-#	cp $(<) $(*).tmp
-#	$(OBJCOPY) -I binary -O elf32-littlearm -B arm \
-#	--rename-section .data=.rodata \
-#	--redefine-sym _binary_$(subst .,_,$(subst /,_,$(*)))_tmp_start=$(notdir $*)\
-#	--redefine-sym _binary_$(subst .,_,$(subst /,_,$(*)))_tmp_end=$(notdir $*)_end\
-#	$(*).tmp $(@)
-#	echo "extern const u8" $(notdir $*)"[] __attribute__ ((aligned (4)));" > $(*).h
-#	echo "extern const u32" $(notdir $(*))_size[]";" >> $(*).h
-#	
-#	echo $(*).h
-#	rm $(*).tmp
-#endef
-
-##############
-# Replacement rule for the one in makefile.common
-##############
-ifndef HAVE_GCC3
-# If you use GCC, disable the above and enable this for intelligent
-# dependency tracking. 
-.cpp.o:
-	$(MKDIR) $(*D)/$(DEPDIR)
-	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2" $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
-	$(ECHO) "$(*D)/" > $(*D)/$(DEPDIR)/$(*F).d
-	$(CAT) "$(*D)/$(DEPDIR)/$(*F).d2" >> "$(*D)/$(DEPDIR)/$(*F).d"
-	$(RM) "$(*D)/$(DEPDIR)/$(*F).d2"
-else
-# If you even have GCC 3.x, you can use this build rule, which is safer; the above
-# rule can get you into a bad state if you Ctrl-C at the wrong moment.
-# Also, with this GCC inserts additional dummy rules for the involved headers,
-# which ensures a smooth compilation even if said headers become obsolete.
-.cpp.o:
-	$(MKDIR) $(*D)/$(DEPDIR)
-#	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
-	$(CXX) -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d"              $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
-endif
-
-
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.pcx
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.bin
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.raw
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.pal
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
- 
-#---------------------------------------------------------------------------------
-%.o	:	%.map
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
-
-#---------------------------------------------------------------------------------
-%.o	:	%.mdl
-#---------------------------------------------------------------------------------
-	@echo $(notdir $<)
-	@$(bin2o)
-
-#---------------------------------------------------------------------------------
-%.nds: %.bin
-	@echo ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../logo.bmp "$(shell basename $@);ScummVM 0.9.0;Port v0.6"
-	ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../logo.bmp "$(shell basename $@);ScummVM 0.9.0;Port v0.6"
-	dsbuild $@
-	padbin 16 $(basename $@).ds.gba
-
-#---------------------------------------------------------------------------------
-%.bin: %.elf
-	$(OBJCOPY) -S scummvm.elf scummvm-stripped.elf
-	$(OBJCOPY) -O binary scummvm-stripped.elf scummvm.bin
-
-#%.o: %.s
-#	$(MKDIR) $(*D)/$(DEPDIR)
-#	$(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
-	
\ No newline at end of file






More information about the Scummvm-git-logs mailing list