DC-SWAT Forum
aes4all rebuild - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Programming (/forum-8.html)
+--- Тема: aes4all rebuild (/thread-27.html)



aes4all rebuild - alex - 10.09.2009 14:18

Aes4all это эмуль консоли AES (картриджная версия NEOGEO).

Офф сайт

Из-за того что ромы этой системы имеют большой размер и полностью не помещаются в память дрима используется динамическая подгрузка нужных кусков рома с диска из-за чего эмулируемая игра подтормаживает.

Так вот пытался я его с ISO образа (с SD карты) запустить, но после его запуска дрим перезагружается и DS_SD_Loader неможет SD карту найти. Как я понял это из-за того что эмуль шлет лог в serial port дрима.
Дело в том что в эмуле предусмотрена возможность создавать prefetch файлы используя кодерс кабель

Я хотел пересобрать его отключив эту функцию, но там Makefile сильно мудреный да и исходник общий у NEO4ALL и AES4ALL:(

вот Makefile
Код:
RM= rm -f

CDROM_OBJ=src/cdrom/dc.o
ifndef FAME_C_CORE
FAME_OBJ=src/68k/fame/fame.o
FAME_SRC=src/68k/fame/fame.s
endif

DREAMCAST=YES

include config.mk


ifndef AES
ifdef MENU
OBJS+=romdisk.o
endif
endif

TARGET = $(NAME)

ifdef AES
KOS_CFLAGS= -Isrc/mmu_file/kos-patch/kernel/arch/dreamcast/include -O3 -fomit-frame-pointer -ml -m4-single-only -fno-optimize-sibling-calls -I$(KOS_BASE)/../kos-ports/include -I$(KOS_BASE)/include -I$(KOS_BASE)/kernel/arch/dreamcast/include -I$(KOS_BASE)/addons/include -D_arch_dreamcast -D_arch_sub_pristine -Wall -g -fno-builtin -fno-strict-aliasing

KOS_LDFLAGS = -Lsrc/mmu_file/kos-patchb/dreamcast -Lsrc/mmu_file/kos-patch/addonsb/dreamcast -ml -m4-single-only -Wl,-Ttext=0x8c010000 -nostartfiles -nostdlib -L$(KOS_BASE)b/dreamcast -L$(KOS_BASE)/addonsb/dreamcast
endif

KOS_CFLAGS+= -I$(KOS_BASE)/addons/include/SDL -I$(KOS_BASE)/addons/include

INLINE='static __inline__'

KOS_CFLAGS+= -DDREAMCAST -DSDL -Isrc -Isrc/68k -Isrc/video -DROM_PREFIX="/cd" -DMEMCARD_PREFIX="/vmu/a1/"

ifndef MENU
KOS_CFLAGS+=-DDATA_PREFIX="/cd"
else
ifdef AES
KOS_CFLAGS+=-DDATA_PREFIX="/cd/neo4all/"
else
KOS_CFLAGS+=-DDATA_PREFIX="/rd/"
endif
endif

KOS_CFLAGS+=$(NEO4ALL_CFLAGS)
KOS_CPPFLAGS+=$(KOS_CFLAGS)

all: $(TARGET).elf

include $(KOS_BASE)/Makefile.rules

src/z80/faze/raze.s: src/z80/faze/raze.s.m4
m4 -Isrc/z80/faze/ src/z80/faze/raze.s.m4 > src/z80/faze/raze.s

src/z80/faze/raze.o: src/z80/faze/raze.s

ifdef VIDEOGL
LIB_SDL= -lSDL_mixer_126 -lSDL_image_124 -lSDL_gl_129 -lgl -lpng_128 -lz_123
else
LIB_SDL= -lSDL_mixer_126 -lSDL_image_124 -lSDL_129 -lpng_128 -lz_123
endif

$(TARGET).elf: $(OBJS) $(Z80_OBJS) $(MEMORY_OBJ) $(OBJS_68K)
$(KOS_CC) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGET).elf $(KOS_START) \
$(OBJS) $(OBJS_68K) $(MEMORY_OBJ) $(Z80_OBJS) $(LIB_SDL) $(OBJEXTRA) -lm $(KOS_LIBS)

$(TARGET).bin: $(TARGET).elf
$(KOS_OBJCOPY) -R .stack -O binary $(TARGET).elf $(TARGET).bin

romdisk.o: romdisk.img
#$(KOS_BASE)/utils/bin2o/bin2o romdisk.img data romdisk.o
bin2odc romdisk.img romdisk.o

romdisk.img:
$(KOS_GENROMFS) -f romdisk.img -d data -v

ifdef AES
run: $(TARGET).bin
else
#run: $(TARGET).bin example.iso
run: $(TARGET).bin
endif
$(KOS_LOADER) $(TARGET).bin
#$(KOS_LOADER) $(TARGET).bin -n
#$(KOS_LOADER) $(TARGET).bin -i example.iso

clean:
$(RM) $(OBJS) src/68k/c68k/cpu68k.o src/z80/z80intrf.o src/z80/faze/raze.s $(MEMORY_OBJ) $(TARGET).elf $(TARGET).bin  romdisk.o romdisk.img
$(RM) $(Z80_OBJS) $(OBJS_68K)

и подключенный к нему config.mk
Код:
# --------------------------------------

NAME = neo4all

AES=1
#MUSASHI_CORE=1
FAME_CORE=1
#FAME_C_CORE=1
Z80_EMULATED=1
RAZE_CORE=1
#CZ80_CORE=1
#MAMEZ80_CORE=1
SOUND=1
#CONSOLE=1
MENU=1
MENU_MUSIC=1
#MENU_ALPHA=1
CDDA=1
PD4990A=1
MEMCARD=1
VIDEOGL=1
#USE_DMA=1
#USE_SQ=1
CACHE_GL_AUTOCLEAN=1
USE_THREAD_CDDA=1
#Z80_ONLY_CHANGES_PATCH=1
#SINGLE_MEMORY=1
#STDOUTPUT=1
#CACHE_INLINE=1
#FM_INLINE=1
#INPUT_INLINE=1
#REBOOT_DREAMCAST=1
##DEBUG_FAME=1
#DEBUG_Z80=1
##DEBUG_FRAMESKIP=1
##DEBUG_GL=1
##DEBUG_CDROM=1
##DEBUG_MEMORY=1
##DEBUG_NEO4ALL=1
##PROFILER_NEO4ALL=1
#AUTO_EVENTS=0
#AUTO_MAX_EVENTS=25
##AES_PREFETCHING=1


# --------------------------------------

ifdef DREAMCAST
ifdef AES_PREFETCHING
NEO4ALL_CFLAGS+= -DAES_PREFETCHING -DSTDOUTPUT -DMMU_HANDLE_SLOT_SHIFT=0 -DMMU_HANDLE_SLICE=0
endif
endif

ifdef USE_DMA
NEO4ALL_CFLAGS+=-DUSE_DMA -DUSE_SQ
endif

ifdef USE_SQ
ifndef USE_DMA
NEO4ALL_CFLAGS+=-DUSE_SQ
endif
endif

ifdef CACHE_GL_AUTOCLEAN
NEO4ALL_CFLAGS+=-DCACHE_GL_AUTOCLEAN
endif

ifdef STDOUTPUT
NEO4ALL_CFLAGS+=-DSTDOUTPUT
endif

ifdef REBOOT_DREAMCAST
NEO4ALL_CFLAGS+=-DREBOOT_DREAMCAST
endif

ifdef SOUND
NEO4ALL_CFLAGS+=-DSOUND
endif

ifdef DEBUG_CDROM
NEO4ALL_CFLAGS+=-DDEBUG_CDROM
endif

ifdef PD4990A
NEO4ALL_CFLAGS+=-DUSE_PD4990A
endif

ifdef AES
NAME = aes4all
ifndef DREAMCAST
NEO4ALL_CFLAGS+=-DAES=\"${AES}\"
else
KOS_AFLAGS+= --defsym AES=1
NEO4ALL_CFLAGS+=-DAES="${AES}" -Isrc/mmu_file
endif
endif

ifdef CDDA
ifndef AES
NEO4ALL_CFLAGS+=-DENABLE_CDDA
endif
endif

ifdef DEBUG_GL
NEO4ALL_CFLAGS+=-DDEBUG_GL
endif

ifdef DEBUG_FAME
NEO4ALL_CFLAGS+=-DDEBUG_FAME
endif

ifdef DEBUG_Z80
NEO4ALL_CFLAGS+=-DDEBUG_Z80
endif

ifdef DEBUG_FRAMESKIP
NEO4ALL_CFLAGS+=-DDEBUG_FRAMESKIP
endif

ifdef CONSOLE
NEO4ALL_CFLAGS+=-DSHOW_CONSOLE
endif

ifdef CACHE_INLINE
NEO4ALL_CFLAGS+=-DCACHE_INLINE
endif

ifdef INPUT_INLINE
NEO4ALL_CFLAGS+=-DINPUT_INLINE
endif

ifdef FM_INLINE
NEO4ALL_CFLAGS+=-DFM_INLINE
endif

ifdef MENU
NEO4ALL_CFLAGS+=-DSHOW_MENU
endif

ifdef MENU_MUSIC
NEO4ALL_CFLAGS+=-DMENU_MUSIC
endif

ifdef MENU_ALPHA
NEO4ALL_CFLAGS+=-DMENU_ALPHA
endif

ifdef Z80_EMULATED
NEO4ALL_CFLAGS+= -DZ80_EMULATED
ifdef RAZE_CORE
NEO4ALL_CFLAGS+= -DUSE_RAZE
else
ifdef MAMEZ80_CORE
NEO4ALL_CFLAGS+= -DUSE_MAMEZ80
else
ifdef CZ80_CORE
NEO4ALL_CFLAGS+= -DUSE_CZ80
endif
endif
endif
endif

ifdef FAME_CORE
NEO4ALL_CFLAGS+=-DUSE_FAME_CORE
ifdef FAME_C_CORE
NEO4ALL_CFLAGS+=-DUSE_FAME_C_CORE
endif
else
ifdef MUSASHI_CORE
NEO4ALL_CFLAGS+=-DCPU68K_USE_MUSASHI
else
NEO4ALL_CFLAGS+=-DCPU68K_USE_C68K
endif
endif

ifdef MEMCARD
NEO4ALL_CFLAGS+=-DUSE_MEMCARD
endif

ifdef DEBUG_MEMORY
NEO4ALL_CFLAGS+=-DDEBUG_MEMORY
endif

ifdef DEBUG_NEO4ALL
NEO4ALL_CFLAGS+=-DDEBUG_NEO4ALL -DBEGINTRACE=19 -DTOTRACE=19 -DDEBUG_REGISTERS
endif

ifdef USE_THREAD_CDDA
ifndef AES
NEO4ALL_CFLAGS+=-DUSE_THREAD_CDDA
endif
endif

ifdef SINGLE_MEMORY
NEO4ALL_CFLAGS+=-DSINGLE_MEMORY
endif

ifdef PROFILER_NEO4ALL
NEO4ALL_CFLAGS+=-DPROFILER_NEO4ALL
endif

ifdef AUTO_EVENTS
NEO4ALL_CFLAGS+=-DAUTO_EVENTS=${AUTO_EVENTS}
endif

ifdef AUTO_MAX_EVENTS
NEO4ALL_CFLAGS+=-DAUTO_MAX_EVENTS=${AUTO_MAX_EVENTS}
endif

# --------------------------------------

#NEO4ALL_CFLAGS+= -DEBUG_NEO4ALL -DDEBUG_REGISTERS -DDEBUG_MEMORY -DBEGINTRACE=350 -DTOTRACE=370
#NEO4ALL_CFLAGS+= -DDEBUG_NEO4ALL -DDEBUG_REGISTERS -DBEGINTRACE=1 -DTOTRACE=1
#NEO4ALL_CFLAGS+= -DDEBUG_NEO4ALL -DDEBUG_REGISTERS -DDEBUG_MEMORY -DBEGINTRACE=1 -DTOTRACE=4
#NEO4ALL_CFLAGS+= -DDEBUG_NEO4ALL -DDEBUG_REGISTERS -DBEGINTRACE=1 -DTOTRACE=4
#NEO4ALL_CFLAGS+= -DPROFILER
#NEO4ALL_CFLAGS+= -DPROFILER_TIME=100
#NEO4ALL_CFLAGS+= -DAUTO_FIRE


# --------------------------------------


OBJS =\
src/video/video.o \
src/video/draw.o \
src/input/input.o \
src/main.o \
src/icon.o \
src/memcard.o

ifdef AES
OBJS+= \
src/aes/load.o \
src/aes/aes.o

ifdef DREAMCAST
OBJS+= \
src/mmu_file/mmu_file.o \
src/mmu_file/mmu_handle.o
endif

else
OBJS+= \
src/cdrom/cdrom.o \
src/cdaudio/cdaudio.o \
$(CDROM_OBJ)

endif

ifdef PROFILER_NEO4ALL
OBJS+= \
src/profiler.o
endif

ifdef PD4990A
OBJS+= \
src/pd4990a.o
endif

ifdef MENU
OBJS+= \
src/menu/fade.o \
src/menu/menu.o \
src/menu/background.o \
src/menu/sfont.o \
src/menu/menu_cpu.o \
src/menu/menu_ctl.o \
src/menu/menu_main.o
ifdef AES
OBJS+= \
src/menu/menu_load.o
endif
else
OBJS+= \
src/menu/fade.o \
src/menu/nomenu.o
endif

ifdef CONSOLE
OBJS+= \
src/video/console.o
endif

ifdef SOUND
OBJS+= \
src/sound/sound.o \
src/sound/streams.o \
src/sound/2610intf.o \
src/sound/ay8910.o \
src/sound/fm.o \
src/sound/ymdeltat.o \
src/sound/timer.o
endif

ifdef VIDEOGL
OBJS+=src/video/sprgl.o \
src/video/videogl.o \
src/video/draw_fixgl.o
ifndef ASM_TYPE
OBJS+=src/video/draw_tile.o \
src/video/draw_font.o
endif
NEO4ALL_CFLAGS+= -DUSE_VIDEO_GL
else
OBJS+=src/video/spr.o \
src/video/draw_fix.o
endif


ifdef Z80_EMULATED
ifdef RAZE_CORE
ifndef DREAMCAST
Z80_OBJS = src/z80/raze/raze.o
else
Z80_OBJS = src/z80/faze/raze.o
endif
else
ifdef MAMEZ80_CORE
Z80_OBJS = src/z80/mamez80/z80.o
else
ifdef CZ80_CORE
Z80_OBJS = src/z80/cz80/cz80.o
else
Z80_OBJS = src/z80/mz80/z80.o
endif
endif
endif
Z80_OBJS+= src/z80/z80intrf.o
endif


ifdef FAME_CORE
ifdef FAME_C_CORE
FAME_OBJ=src/68k/fame/famec.o
else
ifdef ASM_TYPE
$(FAME_OBJ): $(FAME_SRC)
nasm -f $(ASM_TYPE) $(FAME_SRC)
endif
endif
OBJS_68K= $(FAME_OBJ)
MEMORY_OBJ= src/memory/fame/memory.o

else
ifdef MUSASHI_CORE
OBJS_68K=\
src/68k/c68k/m68kops.o \
src/68k/c68k/m68kcpu.o \
src/68k/c68k/m68kopac.o \
src/68k/c68k/m68kopdm.o \
src/68k/c68k/m68kopnz.o \
src/68k/c68k/m68kdasm.o
else
OBJS_68K=\
src/68k/c68k/c68kexec.o\
src/68k/c68k/c68k.o
endif

OBJS_68K+= src/68k/c68k/cpu68k.o

MEMORY_OBJ= src/memory/c68k/memory.o

endif


# --------------------------------------



aes4all rebuild - SWAT - 10.09.2009 16:46

А зачем те в makefile то ковыряться? Это убирается в коде...


aes4all rebuild - alex - 11.09.2009 12:25

Цитата:А зачем те в makefile то ковыряться? Это убирается в коде...
А подробней можно:), где копать?


aes4all rebuild - SWAT - 12.09.2009 14:18

Нужно найти это в исходниках. Если ничего не найдешь, то попробуй добавить инициализацию cd-rom где то в начале проги, по идее при ее вызове (если модуль cdiso все еще работает) serial должен перенастроиться в нужный для SD режим.