mirror of
https://github.com/dborth/fceugx.git
synced 2024-10-31 22:45:05 +01:00
add 2008-03-31 release
This commit is contained in:
parent
11f8c6a70f
commit
345fa23539
163
Makefile.gc
Normal file
163
Makefile.gc
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Clear the implicit built in rules
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
.SUFFIXES:
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
ifeq ($(strip $(DEVKITPPC)),)
|
||||||
|
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(DEVKITPPC)/gamecube_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 := fceu_gc
|
||||||
|
BUILD := build
|
||||||
|
#SOURCES := source source/sz source/boards source/linux source/linux/bits source/linux/gnu source/palettes source/fir source/input source/rom source/mappers source/mbshare source/drivers source/drivers/common source/drivers/gamecube source/iplfont
|
||||||
|
SOURCES := source source/boards source/mappers source/input \
|
||||||
|
source/mbshare source/drivers/common \
|
||||||
|
source/drivers/gamecube source/roms \
|
||||||
|
source/iplfont source/sz
|
||||||
|
DATA := data
|
||||||
|
INCLUDES := source/sz
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# options for code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
CFLAGS = -g -Os -Wall $(MACHDEP) $(INCLUDE) -DFCEU_VERSION_NUMERIC=9812 -DNGC=1 \
|
||||||
|
-DZLIB -DBIG_ENDIAN -DHAVE_ASPRINTF=1 -DSTDC \
|
||||||
|
-D_SZ_ONE_DIRECTORY=1 -D_LZMA_IN_CB=1 -D_LZMA_OUT_READ
|
||||||
|
CXXFLAGS = $(CFLAGS)
|
||||||
|
|
||||||
|
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map -Wl,--cref
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# any extra libraries we wish to link with the project
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
LIBS := -logc -lm -lz -lsdcard
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# list of directories containing libraries, this must be the top level containing
|
||||||
|
# include and lib
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
LIBDIRS :=
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)))
|
||||||
|
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
|
||||||
|
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)) \
|
||||||
|
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
|
||||||
|
$(sFILES:.s=.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) \
|
||||||
|
-I$(LIBOGC_INC)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# build a list of library paths
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
|
||||||
|
-L$(LIBOGC_LIB)
|
||||||
|
|
||||||
|
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||||
|
.PHONY: $(BUILD) clean
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD):
|
||||||
|
@[ -d $@ ] || mkdir -p $@
|
||||||
|
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
clean:
|
||||||
|
@echo clean ...
|
||||||
|
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol source/tags
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
run:
|
||||||
|
psoload $(TARGET).dol
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
reload:
|
||||||
|
psoload -r $(TARGET).dol
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
else
|
||||||
|
|
||||||
|
DEPENDS := $(OFILES:.o=.d)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(OUTPUT).dol: $(OUTPUT).elf
|
||||||
|
$(OUTPUT).elf: $(OFILES)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# This rule links in binary data with the .jpg extension
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
%.jpg.o : %.jpg
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(bin2o)
|
||||||
|
|
||||||
|
-include $(DEPENDS)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
endif
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
tags:
|
||||||
|
@( cd source; ctags *.c *.h \
|
||||||
|
boards/*.c boards/*.h \
|
||||||
|
mappers/*.c mappers/*.h \
|
||||||
|
input/*.c input/*.h \
|
||||||
|
mbshare/*.c mbshare/*.h \
|
||||||
|
drivers/common/*.c drivers/common/*.h \
|
||||||
|
drivers/gamecube/*.c drivers/gamecube/*.h \
|
||||||
|
iplfont/*.c iplfont/*.h \
|
||||||
|
sz/*.c sz/*.h \
|
||||||
|
/opt/devkitpro/libogc/include/*.h \
|
||||||
|
/opt/devkitpro/libogc/include/mad/*.h \
|
||||||
|
/opt/devkitpro/libogc/include/ogc/*.h \
|
||||||
|
/opt/devkitpro/libogc/include/modplay/*.h \
|
||||||
|
/opt/devkitpro/libogc/include/sdcard/*.h \
|
||||||
|
/opt/devkitpro/libjpeg/include/jpeg/*.h \
|
||||||
|
/opt/devkitpro/libfreetype/include/*.h \
|
||||||
|
/opt/devkitpro/libfreetype/include/freetype/*.h )
|
4
Makefile.gc.bat
Normal file
4
Makefile.gc.bat
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cp Makefile.gc Makefile
|
||||||
|
make
|
||||||
|
rm Makefile
|
||||||
|
rm -d build/*.*
|
4
Makefile.orig.bat
Normal file
4
Makefile.orig.bat
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cp Makefile.orig Makefile
|
||||||
|
make
|
||||||
|
rm Makefile
|
||||||
|
rm -d build/*.*
|
146
Makefile.wii
Normal file
146
Makefile.wii
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# Clear the implicit built in rules
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
.SUFFIXES:
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
ifeq ($(strip $(DEVKITPPC)),)
|
||||||
|
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(DEVKITPPC)/wii_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 := fceugcwi
|
||||||
|
BUILD := build
|
||||||
|
#SOURCES := source source/sz source/boards source/linux source/linux/bits source/linux/gnu source/palettes source/fir source/input source/rom source/mappers source/mbshare source/drivers source/drivers/common source/drivers/gamecube source/iplfont
|
||||||
|
SOURCES := source source/boards source/mappers source/input \
|
||||||
|
source/mbshare source/drivers/common \
|
||||||
|
source/drivers/gamecube source/roms \
|
||||||
|
source/iplfont source/sz
|
||||||
|
DATA := data
|
||||||
|
INCLUDES := source/sz
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# options for code generation
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE) -DFCEU_VERSION_NUMERIC=9812 -DNGC=1 -DZLIB -DBIG_ENDIAN -DHAVE_ASPRINTF=1 -DSTDC -D_SZ_ONE_DIRECTORY=1 -D_LZMA_IN_CB=1 -D_LZMA_OUT_READ
|
||||||
|
CFLAGS = -g -Os -Wall $(MACHDEP) $(INCLUDE) -DFCEU_VERSION_NUMERIC=9812 -DNGC=1 \
|
||||||
|
-DZLIB -DBIG_ENDIAN -DHAVE_ASPRINTF=1 -DSTDC \
|
||||||
|
-D_SZ_ONE_DIRECTORY=1 -D_LZMA_IN_CB=1 -D_LZMA_OUT_READ
|
||||||
|
CXXFLAGS = $(CFLAGS)
|
||||||
|
|
||||||
|
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map -Wl,--cref
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# any extra libraries we wish to link with the project
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
LIBS := -logc -lm -lz -lsdcard
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# list of directories containing libraries, this must be the top level containing
|
||||||
|
# include and lib
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
LIBDIRS :=
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)))
|
||||||
|
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
|
||||||
|
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# 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)) \
|
||||||
|
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
|
||||||
|
$(sFILES:.s=.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) \
|
||||||
|
-I$(LIBOGC_INC)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# build a list of library paths
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
|
||||||
|
-L$(LIBOGC_LIB)
|
||||||
|
|
||||||
|
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||||
|
.PHONY: $(BUILD) clean
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(BUILD):
|
||||||
|
@[ -d $@ ] || mkdir -p $@
|
||||||
|
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
clean:
|
||||||
|
@echo clean ...
|
||||||
|
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol source/tags
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
run:
|
||||||
|
psoload $(TARGET).dol
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
reload:
|
||||||
|
psoload -r $(TARGET).dol
|
||||||
|
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
else
|
||||||
|
|
||||||
|
DEPENDS := $(OFILES:.o=.d)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# main targets
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
$(OUTPUT).dol: $(OUTPUT).elf
|
||||||
|
$(OUTPUT).elf: $(OFILES)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
# This rule links in binary data with the .jpg extension
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
%.jpg.o : %.jpg
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
@echo $(notdir $<)
|
||||||
|
$(bin2o)
|
||||||
|
|
||||||
|
-include $(DEPENDS)
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
endif
|
||||||
|
#---------------------------------------------------------------------------------
|
4
Makefile.wii.bat
Normal file
4
Makefile.wii.bat
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
cp Makefile.wii Makefile
|
||||||
|
make
|
||||||
|
rm Makefile
|
||||||
|
rm build/*.*
|
BIN
fceugc.dol
BIN
fceugc.dol
Binary file not shown.
Before Width: | Height: | Size: 2.4 MiB |
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
<pd><ViewState><e p="fceugc" x="true"></e><e p="fceugc\input" x="false"></e><e p="fceugc\iplfont" x="false"></e><e p="fceugc\mappers" x="false"></e><e p="fceugc\ngc" x="false"></e><e p="fceugc\boards" x="false"></e><e p="fceugc\common" x="false"></e><e p="fceugc\roms" x="false"></e><e p="fceugc\source" x="false"></e><e p="fceugc\sz" x="false"></e><e p="fceugc\mbshare" x="false"></e></ViewState></pd>
|
<pd><ViewState><e p="fceugc" x="true"></e><e p="fceugc\input" x="false"></e><e p="fceugc\iplfont" x="false"></e><e p="fceugc\mappers" x="false"></e><e p="fceugc\ngc" x="false"></e><e p="fceugc\boards" x="false"></e><e p="fceugc\common" x="false"></e><e p="fceugc\makefiles" x="true"></e><e p="fceugc\roms" x="false"></e><e p="fceugc\source" x="false"></e><e p="fceugc\sz" x="false"></e><e p="fceugc\mbshare" x="false"></e></ViewState></pd>
|
21
history.txt
21
history.txt
@ -9,12 +9,29 @@ This new version have asako and _svpe_ lastest added options.
|
|||||||
Enjoy it!
|
Enjoy it!
|
||||||
Askot.
|
Askot.
|
||||||
|
|
||||||
|
What's new [20080331]
|
||||||
|
|
||||||
|
+[Askot]
|
||||||
|
- Fixed/changed SDCARD slot selection for searching roms, at
|
||||||
|
start you will be prompted for this option.
|
||||||
|
- Code cleanup.
|
||||||
|
|
||||||
|
+[dsbomb]
|
||||||
|
- Added Wii mode support.
|
||||||
|
- Give a "Bad cartridge" error instead of locking up.
|
||||||
|
- Joystick fixes due to libogc r14's changed stick values
|
||||||
|
- Rearranged menu to make more sense, and consistent with Snes9x
|
||||||
|
- Add "Reboot" menu option
|
||||||
|
- Removed "." directory from SD card listing, it's pointless
|
||||||
|
- Expand DVD reading to DVD9 size (once DVDs are working again)
|
||||||
|
- Added option to go back a menu by pressing B.
|
||||||
|
|
||||||
What's new? Askot [20080326]
|
What's new? Askot [20080326]
|
||||||
- Added saving state in SD Card (State files will be saved in root of SDCARD).
|
- Added saving state in SD Card (State files will be saved in root of SDCARD).
|
||||||
*Note: I can't make it work to save in root:\fceugc\saves, so help needed.
|
*Note: I can't make it work to save in root:\fceu\saves, so help needed.
|
||||||
- Added SDCARD slot selection for searching roms, meaning, you can search roms
|
- Added SDCARD slot selection for searching roms, meaning, you can search roms
|
||||||
from SDCARD SLOT A & SLOT B (Beta, meaning, buggy, but works).
|
from SDCARD SLOT A & SLOT B (Beta, meaning, buggy, but works).
|
||||||
- For standarization, you must create folders root:\fceugc\roms to read NES
|
- For standarization, you must create folders root:\fceu\roms to read NES
|
||||||
roms files from SDCARD.
|
roms files from SDCARD.
|
||||||
- Added C-Left to call Menu.
|
- Added C-Left to call Menu.
|
||||||
- Reading files from SD Card it's faster, now they're called from cache
|
- Reading files from SD Card it's faster, now they're called from cache
|
||||||
|
@ -59,6 +59,7 @@ int UseSDCARD = 0;
|
|||||||
sd_file * filehandle;
|
sd_file * filehandle;
|
||||||
char rootSDdir[SDCARD_MAX_PATH_LEN];
|
char rootSDdir[SDCARD_MAX_PATH_LEN];
|
||||||
int haveSDdir = 0;
|
int haveSDdir = 0;
|
||||||
|
int sdslot = 0;
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* DVD Lowlevel Functions
|
* DVD Lowlevel Functions
|
||||||
@ -199,7 +200,7 @@ unsigned int dvd_read(void *dst, unsigned int len, u64 offset)
|
|||||||
|
|
||||||
DCInvalidateRange ((void *) buffer, len);
|
DCInvalidateRange ((void *) buffer, len);
|
||||||
|
|
||||||
if (offset < 0x57057C00 || (isWii == true && offset < 0x118244F00LL)) // don't read past the end of the dvd
|
if (offset < 0x57057C00 || (isWii == true && offset < 0x1FD3E0000LL)) // don't read past the end of the dvd
|
||||||
{
|
{
|
||||||
dvd[0] = 0x2E;
|
dvd[0] = 0x2E;
|
||||||
dvd[1] = 0;
|
dvd[1] = 0;
|
||||||
@ -432,7 +433,7 @@ int updateSDdirname()
|
|||||||
int size=0;
|
int size=0;
|
||||||
char *test;
|
char *test;
|
||||||
char temp[1024];
|
char temp[1024];
|
||||||
char tmpCompare[1024];
|
// char tmpCompare[1024];
|
||||||
|
|
||||||
/* current directory doesn't change */
|
/* current directory doesn't change */
|
||||||
if (strcmp(filelist[selection].filename,".") == 0) return 0;
|
if (strcmp(filelist[selection].filename,".") == 0) return 0;
|
||||||
@ -454,9 +455,8 @@ int updateSDdirname()
|
|||||||
rootSDdir[size] = 0;
|
rootSDdir[size] = 0;
|
||||||
|
|
||||||
/* handles root name */
|
/* handles root name */
|
||||||
sprintf(tmpCompare, "dev%d:",choosenSDSlot);
|
//sprintf(tmpCompare, "dev%d:",choosenSDSlot);
|
||||||
if (strcmp(rootSDdir,tmpCompare) == 0)sprintf(rootSDdir,"dev%d:\\fceu\\..", choosenSDSlot);
|
if (strcmp(rootSDdir, sdslot ? "dev1:":"dev0:") == 0)sprintf(rootSDdir,"dev%d:\\fceu\\..", sdslot);
|
||||||
//if (strcmp(rootSDdir,"dev0:") == 0) sprintf(rootSDdir,"dev0:\\fceu\\..");
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -466,9 +466,9 @@ int updateSDdirname()
|
|||||||
if ((strlen(rootSDdir)+1+strlen(filelist[selection].filename)) < SDCARD_MAX_PATH_LEN)
|
if ((strlen(rootSDdir)+1+strlen(filelist[selection].filename)) < SDCARD_MAX_PATH_LEN)
|
||||||
{
|
{
|
||||||
/* handles root name */
|
/* handles root name */
|
||||||
sprintf(tmpCompare, "dev%d:\\fceu\\..",choosenSDSlot);
|
//sprintf(tmpCompare, "dev%d:\\fceu\\..",choosenSDSlot);
|
||||||
if (strcmp(rootSDdir, tmpCompare) == 0) sprintf(rootSDdir,"dev%d:",choosenSDSlot);
|
//if (strcmp(rootSDdir, tmpCompare) == 0) sprintf(rootSDdir,"dev%d:",choosenSDSlot);
|
||||||
//if (strcmp(rootSDdir,"dev0:\\fceu\\..") == 0) sprintf(rootSDdir,"dev0:");
|
if (strcmp(rootSDdir, sdslot ? "dev1:\\fceu\\.." : "dev0:\\fceu\\..") == 0) sprintf(rootSDdir,"dev%d:",sdslot);
|
||||||
|
|
||||||
/* update current directory name */
|
/* update current directory name */
|
||||||
sprintf(rootSDdir, "%s\\%s",rootSDdir, filelist[selection].filename);
|
sprintf(rootSDdir, "%s\\%s",rootSDdir, filelist[selection].filename);
|
||||||
@ -490,6 +490,7 @@ int parseSDdirectory()
|
|||||||
{
|
{
|
||||||
int entries = 0;
|
int entries = 0;
|
||||||
int nbfiles = 0;
|
int nbfiles = 0;
|
||||||
|
int numstored = 0;
|
||||||
DIR *sddir = NULL;
|
DIR *sddir = NULL;
|
||||||
|
|
||||||
/* initialize selection */
|
/* initialize selection */
|
||||||
@ -504,13 +505,16 @@ int parseSDdirectory()
|
|||||||
|
|
||||||
while (entries)
|
while (entries)
|
||||||
{
|
{
|
||||||
memset (&filelist[nbfiles], 0, sizeof (FILEENTRIES));
|
if (strcmp((const char*)sddir[nbfiles].fname, ".") != 0) { // Skip "." directory
|
||||||
strncpy(filelist[nbfiles].filename,(const char*)sddir[nbfiles].fname,MAXJOLIET);
|
memset (&filelist[numstored], 0, sizeof (FILEENTRIES));
|
||||||
filelist[nbfiles].filename[MAXJOLIET-1] = 0;
|
strncpy(filelist[numstored].filename,(const char*)sddir[nbfiles].fname,MAXJOLIET);
|
||||||
filelist[nbfiles].length = sddir[nbfiles].fsize;
|
filelist[numstored].filename[MAXJOLIET-1] = 0;
|
||||||
filelist[nbfiles].flags = (char)(sddir[nbfiles].fattr & SDCARD_ATTR_DIR);
|
filelist[numstored].length = sddir[nbfiles].fsize;
|
||||||
nbfiles++;
|
filelist[numstored].flags = (char)(sddir[nbfiles].fattr & SDCARD_ATTR_DIR);
|
||||||
entries--;
|
numstored++;
|
||||||
|
}
|
||||||
|
nbfiles++;
|
||||||
|
entries--;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(sddir);
|
free(sddir);
|
||||||
@ -564,7 +568,8 @@ void ShowFiles( int offset, int selection )
|
|||||||
* Let user select another ROM to load
|
* Let user select another ROM to load
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
bool inSz = false;
|
bool inSz = false;
|
||||||
#define PADCAL 70
|
//#define PADCAL 70
|
||||||
|
extern int PADCAL;
|
||||||
|
|
||||||
void FileSelector()
|
void FileSelector()
|
||||||
{
|
{
|
||||||
@ -802,7 +807,7 @@ int OpenDVD()
|
|||||||
{
|
{
|
||||||
|
|
||||||
int i, j;
|
int i, j;
|
||||||
int driveid;//char debug[128];
|
int driveid=-99;
|
||||||
|
|
||||||
haveSDdir = 0;
|
haveSDdir = 0;
|
||||||
|
|
||||||
@ -812,10 +817,6 @@ int OpenDVD()
|
|||||||
|
|
||||||
/*** Make sure it's one I now about ***/
|
/*** Make sure it's one I now about ***/
|
||||||
if ( ( driveid != 4 ) && ( driveid != 6 ) && ( driveid != 8 ) ) {
|
if ( ( driveid != 4 ) && ( driveid != 6 ) && ( driveid != 8 ) ) {
|
||||||
/*sprintf(debug, "Unknown drive id! (%d) ... Halted", driveid);
|
|
||||||
WaitPrompt(debug);
|
|
||||||
return 0;*/
|
|
||||||
// if the driveid isn't 4, 6 or 8 we are running on a Wii
|
|
||||||
isWii = true;
|
isWii = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -888,12 +889,13 @@ int OpenDVD()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int OpenSD ()
|
int OpenSD ()
|
||||||
{
|
{
|
||||||
UseSDCARD = 1;
|
UseSDCARD = 1;
|
||||||
char msg[128];
|
char msg[128];
|
||||||
|
|
||||||
|
if (choosenSDSlot != sdslot) haveSDdir = 0;
|
||||||
|
|
||||||
if (haveSDdir == 0)
|
if (haveSDdir == 0)
|
||||||
{
|
{
|
||||||
/* don't mess with DVD entries */
|
/* don't mess with DVD entries */
|
||||||
@ -901,7 +903,7 @@ int OpenSD ()
|
|||||||
|
|
||||||
/* Reset SDCARD root directory */
|
/* Reset SDCARD root directory */
|
||||||
sprintf(rootSDdir,"dev%d:\\fceu\\roms",choosenSDSlot);
|
sprintf(rootSDdir,"dev%d:\\fceu\\roms",choosenSDSlot);
|
||||||
//sprintf(rootSDdir,"dev0:\\fceu\\roms");
|
sdslot = choosenSDSlot;
|
||||||
|
|
||||||
/* Parse initial root directory and get entries list */
|
/* Parse initial root directory and get entries list */
|
||||||
ShowAction("Reading Directory ...");
|
ShowAction("Reading Directory ...");
|
||||||
|
@ -84,6 +84,42 @@ void WaitPrompt( char *msg )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wait for user to press A or B. Returns 0 = B; 1 = A
|
||||||
|
*/
|
||||||
|
int WaitButtonAB ()
|
||||||
|
{
|
||||||
|
int btns;
|
||||||
|
|
||||||
|
while ( (PAD_ButtonsDown (0) & (PAD_BUTTON_A | PAD_BUTTON_B)) );
|
||||||
|
|
||||||
|
while ( TRUE )
|
||||||
|
{
|
||||||
|
btns = PAD_ButtonsDown (0);
|
||||||
|
if ( btns & PAD_BUTTON_A )
|
||||||
|
return 1;
|
||||||
|
else if ( btns & PAD_BUTTON_B )
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show a prompt with choice of two options. Returns 1 if A button was pressed
|
||||||
|
and 0 if B button was pressed.
|
||||||
|
*/
|
||||||
|
int WaitPromptChoice (char *msg, char *bmsg, char *amsg)
|
||||||
|
{
|
||||||
|
char choiceOption[80];
|
||||||
|
sprintf (choiceOption, "B = %s : A = %s", bmsg, amsg);
|
||||||
|
|
||||||
|
ClearScreen ();
|
||||||
|
WriteCentre(220, msg);
|
||||||
|
WriteCentre(220 + font_height, choiceOption);
|
||||||
|
SetScreen ();
|
||||||
|
|
||||||
|
return WaitButtonAB ();
|
||||||
|
}
|
||||||
|
|
||||||
void ShowAction( char *msg )
|
void ShowAction( char *msg )
|
||||||
{
|
{
|
||||||
memcpy (xfb[whichfb], &backdrop, 1280 * 480);
|
memcpy (xfb[whichfb], &backdrop, 1280 * 480);
|
||||||
|
@ -54,7 +54,8 @@ extern unsigned char GetAnalog(int Joy);
|
|||||||
|
|
||||||
#define MAXPAL 12
|
#define MAXPAL 12
|
||||||
|
|
||||||
#define SCROLLY 380
|
#define SCROLLY 395
|
||||||
|
#define SOFTRESET_ADR ((volatile u32*)0xCC003024)
|
||||||
|
|
||||||
/* color palettes */
|
/* color palettes */
|
||||||
struct
|
struct
|
||||||
@ -399,7 +400,7 @@ int configpadcount = 10;
|
|||||||
char padmenu[10][30] = {
|
char padmenu[10][30] = {
|
||||||
{ "NES BUTTON A - A" }, { " BUTTON B - B" }, { " START - S" },
|
{ "NES BUTTON A - A" }, { " BUTTON B - B" }, { " START - S" },
|
||||||
{ " SELECT - Z" }, { " TURBO A - X" }, { " TURBO B - Y" },
|
{ " SELECT - Z" }, { " TURBO A - X" }, { " TURBO B - Y" },
|
||||||
{ " FOUR SCORE - OFF" }, { " ANALOG CLIP - 70"}, { " TURBO SPEED - 30.00 pps" },
|
{ " FOUR SCORE - OFF" }, { " ANALOG CLIP - 40"}, { " TURBO SPEED - 30.00 pps" },
|
||||||
{ "Return to previous" }
|
{ "Return to previous" }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -507,6 +508,10 @@ void ConfigPAD()
|
|||||||
padmenu[i][15] = PADMap( mpads[i], i );
|
padmenu[i][15] = PADMap( mpads[i], i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( j & PAD_BUTTON_B ) {
|
||||||
|
quit=1; return;
|
||||||
|
}
|
||||||
|
|
||||||
if ( menu < 0 ) menu = configpadcount - 1;
|
if ( menu < 0 ) menu = configpadcount - 1;
|
||||||
|
|
||||||
@ -597,6 +602,8 @@ int StateManager()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( j & PAD_BUTTON_B ) quit = 1;
|
||||||
|
|
||||||
if ( menu < 0 )
|
if ( menu < 0 )
|
||||||
menu = mccount - 1;
|
menu = mccount - 1;
|
||||||
|
|
||||||
@ -726,7 +733,8 @@ int VideoEnhancements()
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( j & PAD_BUTTON_B ) quit = 1;
|
||||||
if ( menu < 0 )
|
if ( menu < 0 )
|
||||||
menu = vecount - 1;
|
menu = vecount - 1;
|
||||||
|
|
||||||
@ -793,7 +801,7 @@ void ShowROMInfo()
|
|||||||
|
|
||||||
SetScreen();
|
SetScreen();
|
||||||
|
|
||||||
while ( !(PAD_ButtonsDown(0) & PAD_BUTTON_A ) )
|
while ( !(PAD_ButtonsDown(0) & (PAD_BUTTON_A | PAD_BUTTON_B)) )
|
||||||
{ VIDEO_WaitVSync(); }
|
{ VIDEO_WaitVSync(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -802,10 +810,11 @@ void ShowROMInfo()
|
|||||||
* Media Select Screen
|
* Media Select Screen
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
int mediacount = 4;
|
int mediacount = 3;
|
||||||
char mediamenu[4][30] = {
|
char mediamenu[3][30] = {
|
||||||
{ "Load from DVD" }, { "Load from SDCARD"},
|
{ "Load from DVD" }, { "Load from SDCARD"},
|
||||||
{ "Rom loading in SDCARD: SLOT A" }, { "Return to previous" }
|
//{ "Rom loading in SDCARD: SLOT A" },
|
||||||
|
{ "Return to previous" }
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned char msstext[][512] = {
|
unsigned char msstext[][512] = {
|
||||||
@ -815,7 +824,7 @@ unsigned char msstext[][512] = {
|
|||||||
{ "How can You wait this long?! The games are waiting for You!!" }
|
{ "How can You wait this long?! The games are waiting for You!!" }
|
||||||
};
|
};
|
||||||
|
|
||||||
int choosenSDSlot = 0;
|
//int choosenSDSlot = 0;
|
||||||
|
|
||||||
int MediaSelect()
|
int MediaSelect()
|
||||||
{
|
{
|
||||||
@ -849,26 +858,28 @@ int MediaSelect()
|
|||||||
if ( j & PAD_BUTTON_A ) {
|
if ( j & PAD_BUTTON_A ) {
|
||||||
redraw = 1;
|
redraw = 1;
|
||||||
switch ( menu ) {
|
switch ( menu ) {
|
||||||
case 0: UseSDCARD = 0;
|
case 0: UseSDCARD = 0; //DVD
|
||||||
OpenDVD();
|
OpenDVD();
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: UseSDCARD = 1;
|
case 1: UseSDCARD = 1; //SDCard
|
||||||
OpenSD();
|
OpenSD();
|
||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
/*case 2: choosenSDSlot ^= 1; //Pick Slot
|
||||||
choosenSDSlot ^= 1;
|
|
||||||
sprintf(mediamenu[2], (!choosenSDSlot) ? "Rom loading in SDCARD: SLOT A" : "Rom loading in SDCARD: SLOT B");
|
sprintf(mediamenu[2], (!choosenSDSlot) ? "Rom loading in SDCARD: SLOT A" : "Rom loading in SDCARD: SLOT B");
|
||||||
break;
|
break;*/
|
||||||
case 3: quit = 1;
|
case 2: quit = 1; //Previous
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default: break ;
|
default: break ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( j & PAD_BUTTON_B )
|
||||||
|
quit = 1;
|
||||||
|
|
||||||
if ( menu == mediacount )
|
if ( menu == mediacount )
|
||||||
menu = 0;
|
menu = 0;
|
||||||
|
|
||||||
@ -898,8 +909,8 @@ char credits[12][512] = {
|
|||||||
{ "Misc. addons by KruLLo" },
|
{ "Misc. addons by KruLLo" },
|
||||||
{ "Extras features Askot" },
|
{ "Extras features Askot" },
|
||||||
{ "Thank you to" },
|
{ "Thank you to" },
|
||||||
{ "brakken, mithos, luciddream, HonkeyKong" },
|
{ "brakken, mithos, luciddream, HonkeyKong," },
|
||||||
{ "... and everyone who supported v1.0!" }
|
{ "dsbomb for bringing it to the Wii" },
|
||||||
};
|
};
|
||||||
|
|
||||||
void ShowCredits(){
|
void ShowCredits(){
|
||||||
@ -927,24 +938,31 @@ void ShowCredits(){
|
|||||||
|
|
||||||
SetScreen();
|
SetScreen();
|
||||||
|
|
||||||
while ( !(PAD_ButtonsDown(0) & PAD_BUTTON_A ) )
|
while ( !(PAD_ButtonsDown(0) & (PAD_BUTTON_A | PAD_BUTTON_B)) )
|
||||||
{ VIDEO_WaitVSync(); }
|
{ VIDEO_WaitVSync(); }
|
||||||
|
|
||||||
}
|
}
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Configuration Screen
|
* Configuration Screen
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
int configmenucount = 10;
|
int configmenucount = 11;
|
||||||
char configmenu[10][30] = {
|
char configmenu[11][30] = {
|
||||||
{ "Play Game" }, { "Game Information" }, { "Configure Joypads" },
|
{ "Play Game" },
|
||||||
{ "Video Options" }, { "Load new Game" }, { "Reset NES" },
|
{ "Reset NES" },
|
||||||
{ "Stop DVD Motor" }, { "STATE Manager" }, { "PSO/SD Reload" } ,
|
{ "Load New Game" },
|
||||||
|
{ "State Manager" },
|
||||||
|
{ "ROM Information" },
|
||||||
|
{ "Configure Joypads" },
|
||||||
|
{ "Video Options" },
|
||||||
|
{ "Stop DVD Motor" },
|
||||||
|
{ "PSO/SD Reload" } ,
|
||||||
|
{ "Reboot Gamecube" },
|
||||||
{ "Credits" }
|
{ "Credits" }
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned char cstext[][512] = {
|
unsigned char cstext[][512] = {
|
||||||
//ConfigScreen
|
//ConfigScreen
|
||||||
{ "FCE Ultra GameCube Edition - Version 1.0.8 \"SUPER-DELUXE\" ;)" },
|
{ "FCE Ultra GameCube Edition - Version 1.0.9 \"SUPER-DELUXE\" ;)" },
|
||||||
{ "Press L + R anytime to return to this menu!" },
|
{ "Press L + R anytime to return to this menu!" },
|
||||||
{ "Press START + B + X anytime for PSO/SD-reload" },
|
{ "Press START + B + X anytime for PSO/SD-reload" },
|
||||||
{ "* * *" },
|
{ "* * *" },
|
||||||
@ -960,7 +978,7 @@ int ConfigScreen()
|
|||||||
short j;
|
short j;
|
||||||
int redraw = 1;
|
int redraw = 1;
|
||||||
|
|
||||||
int *psoid = (int *) 0x80001800;
|
//int *psoid = (int *) 0x80001800;
|
||||||
void (*PSOReload) () = (void (*)()) 0x80001800;
|
void (*PSOReload) () = (void (*)()) 0x80001800;
|
||||||
|
|
||||||
/*** Stop any running Audio ***/
|
/*** Stop any running Audio ***/
|
||||||
@ -1008,45 +1026,59 @@ int ConfigScreen()
|
|||||||
if (j & PAD_BUTTON_A ) {
|
if (j & PAD_BUTTON_A ) {
|
||||||
redraw = 1;
|
redraw = 1;
|
||||||
switch ( menu ) {
|
switch ( menu ) {
|
||||||
case 0: quit = 1; break;
|
case 0: // Play Game
|
||||||
|
quit = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
case 1: ShowROMInfo(); break;
|
case 1: // Reset NES
|
||||||
|
ResetNES();
|
||||||
|
return 1;
|
||||||
|
break;
|
||||||
|
|
||||||
case 2: ConfigPAD(); scrollerx = 320 - MARGIN; break;
|
case 2: // Load new Game
|
||||||
|
//if (MediaSelect()) {
|
||||||
|
// if (GCMemROM() >= 0) return 1;/* Fix by Garglub. Thanks! */
|
||||||
|
//}
|
||||||
|
MediaSelect();
|
||||||
|
scrollerx = 320 - MARGIN;
|
||||||
|
break;
|
||||||
|
|
||||||
case 3: if (VideoEnhancements())
|
case 3: // State Manager
|
||||||
return 2;
|
if (StateManager()) return 2;
|
||||||
scrollerx = 320 - MARGIN;
|
scrollerx = 320 - MARGIN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4: if (MediaSelect()) {
|
case 4: // Game Information
|
||||||
GCMemROM(); /* Fix by Garglub. Thanks! */
|
ShowROMInfo();
|
||||||
return 1;
|
break;
|
||||||
}
|
|
||||||
scrollerx = 320 - MARGIN;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 5: ResetNES();
|
case 5: // COnfigure Joypads
|
||||||
return 1;
|
ConfigPAD();
|
||||||
break;
|
scrollerx = 320 - MARGIN;
|
||||||
|
break;
|
||||||
|
|
||||||
case 6: ShowAction("Stopping Motor");
|
case 6: // Video Options
|
||||||
dvd_motor_off();
|
if (VideoEnhancements()) return 2;
|
||||||
WaitPrompt("DVD Motor Stopped");
|
scrollerx = 320 - MARGIN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7: if (StateManager())
|
case 7: // Stop DVD Motor
|
||||||
return 2;
|
ShowAction("Stopping Motor");
|
||||||
scrollerx = 320 - MARGIN;
|
dvd_motor_off();
|
||||||
break;
|
WaitPrompt("DVD Motor Stopped");
|
||||||
|
break;
|
||||||
|
|
||||||
case 8:
|
case 8: // PSO/SD Reload
|
||||||
PSOReload ();
|
PSOReload ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 9:
|
case 9: // Reboot
|
||||||
ShowCredits();
|
*SOFTRESET_ADR = 0x00000000;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 10: // Credits
|
||||||
|
ShowCredits();
|
||||||
|
break;
|
||||||
|
|
||||||
default: break ;
|
default: break ;
|
||||||
}
|
}
|
||||||
@ -1065,7 +1097,7 @@ int ConfigScreen()
|
|||||||
|
|
||||||
/*** Remove any still held buttons ***/
|
/*** Remove any still held buttons ***/
|
||||||
while(PAD_ButtonsHeld(0)) VIDEO_WaitVSync();
|
while(PAD_ButtonsHeld(0)) VIDEO_WaitVSync();
|
||||||
|
|
||||||
/*** Stop the DVD from causing clicks while playing ***/
|
/*** Stop the DVD from causing clicks while playing ***/
|
||||||
uselessinquiry ();
|
uselessinquiry ();
|
||||||
|
|
||||||
|
@ -44,10 +44,19 @@ long long basetime;
|
|||||||
|
|
||||||
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count);
|
void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count);
|
||||||
|
|
||||||
|
void (*PSOReload) () = (void (*)()) 0x80001800;
|
||||||
|
|
||||||
|
static void reset_cb() {
|
||||||
|
PSOReload();
|
||||||
|
}
|
||||||
|
|
||||||
|
extern int WaitPromptChoice (char *msg, char *bmsg, char *amsg);
|
||||||
|
int choosenSDSlot = 0;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|
||||||
initDisplay();
|
initDisplay();
|
||||||
|
SYS_SetResetCallback (reset_cb);
|
||||||
InitialiseSound();
|
InitialiseSound();
|
||||||
SDCARD_Init ();
|
SDCARD_Init ();
|
||||||
|
|
||||||
@ -69,6 +78,7 @@ int main(int argc, char *argv[])
|
|||||||
cleanSFMDATA();
|
cleanSFMDATA();
|
||||||
GCMemROM();
|
GCMemROM();
|
||||||
|
|
||||||
|
choosenSDSlot = !WaitPromptChoice("Choose a SLOT to load Roms from SDCARD", "SLOT B", "SLOT A");
|
||||||
ConfigScreen();
|
ConfigScreen();
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
|
@ -62,12 +62,11 @@ int GCMemROM()
|
|||||||
FCEU_ResetPalette();
|
FCEU_ResetPalette();
|
||||||
FCEU_ResetMessages(); // Save state, status messages, etc.
|
FCEU_ResetMessages(); // Save state, status messages, etc.
|
||||||
SetSoundVariables();
|
SetSoundVariables();
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("Bad cartridge!");
|
WaitPrompt("Bad cartridge!");
|
||||||
while(1) {};
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;;
|
return 0;;
|
||||||
|
@ -239,7 +239,7 @@ int GCFCEUSS_Save()
|
|||||||
static unsigned char header[16] = "FCS\xff";
|
static unsigned char header[16] = "FCS\xff";
|
||||||
char chunk[] = "CHKE";
|
char chunk[] = "CHKE";
|
||||||
int zero = 0;
|
int zero = 0;
|
||||||
char Comment[2][32] = { { "FCEU GC Version 1.0.8" }, { "A GAME" } };
|
char Comment[2][32] = { { "FCEU GC Version 1.0.9" }, { "A GAME" } };
|
||||||
|
|
||||||
memopen(); /*** Reset Memory File ***/
|
memopen(); /*** Reset Memory File ***/
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ unsigned char DecodeJoy( unsigned short pp )
|
|||||||
*
|
*
|
||||||
* Additional check for Analog X/Y
|
* Additional check for Analog X/Y
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
int PADCAL = 70;
|
int PADCAL = 40;
|
||||||
|
|
||||||
unsigned char GetAnalog(int Joy)
|
unsigned char GetAnalog(int Joy)
|
||||||
{
|
{
|
||||||
@ -130,7 +130,7 @@ int GetJoy()
|
|||||||
int t = 0;
|
int t = 0;
|
||||||
|
|
||||||
void (*PSOReload)() = (void(*)())0x80001800;
|
void (*PSOReload)() = (void(*)())0x80001800;
|
||||||
|
|
||||||
/*** Before checking anything else, look for PSOReload ***/
|
/*** Before checking anything else, look for PSOReload ***/
|
||||||
if ( PAD_ButtonsHeld(0) == ( PAD_BUTTON_B | PAD_BUTTON_X | PAD_BUTTON_START ) )
|
if ( PAD_ButtonsHeld(0) == ( PAD_BUTTON_B | PAD_BUTTON_X | PAD_BUTTON_START ) )
|
||||||
PSOReload();
|
PSOReload();
|
||||||
@ -138,7 +138,7 @@ int GetJoy()
|
|||||||
/*** Look for config menu ***/
|
/*** Look for config menu ***/
|
||||||
signed char px;
|
signed char px;
|
||||||
px = PAD_SubStickX (0);
|
px = PAD_SubStickX (0);
|
||||||
if (((px < -70)) || (PAD_ButtonsHeld(0) == ( PAD_TRIGGER_L | PAD_TRIGGER_R ))) {
|
if (((px < -PADCAL)) || (PAD_ButtonsHeld(0) == ( PAD_TRIGGER_L | PAD_TRIGGER_R ))) {
|
||||||
t = ConfigScreen();
|
t = ConfigScreen();
|
||||||
if (t == 1) {
|
if (t == 1) {
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user