I'm using the lastest MinGW GCC 3.4.2, GNU autotools, zlib 1.2.2 and libpng 1.2.8 libraries that are available to me.
This is my makefile.mingw
-----------------------------------------------------------------------------------
#Copyright (C) 1997-2004 ZSNES Team ( zsknight@zsnes.com / _demo_@zsnes.com )
#
#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., 675 Mass Ave, Cambridge, MA 02139, USA.
#This file depends on link.win32 so if you modify this makefile,
#don't forget to update link.win32
#it is quite ugly but without that trick, the compilation didn't
#work for me (command line too long)
CHIPDIR=chips
CPUDIR=cpu
DOSDIR=dos
GUIDIR=gui
VIDEODIR=video
WINDIR=win
OBJDIR=obj
ZIPDIR=zip
EFFECTSDIR=effects
JMADIR=jma
CHIPSOBJ=${CHIPDIR}/sfxproc.o ${CHIPDIR}/fxemu2.o ${CHIPDIR}/dsp1proc.o\
${CHIPDIR}/fxemu2b.o ${CHIPDIR}/fxemu2c.o ${CHIPDIR}/fxtable.o\
${CHIPDIR}/sa1proc.o ${CHIPDIR}/sa1regs.o ${CHIPDIR}/dsp1emu.o\
${CHIPDIR}/st10proc.o ${CHIPDIR}/seta10.o ${CHIPDIR}/dsp2proc.o\
${CHIPDIR}/sdd1emu.o
CPUOBJ=${CPUDIR}/addrni.o ${CPUDIR}/dma.o ${CPUDIR}/dsp.o ${CPUDIR}/dspproc.o\
${CPUDIR}/execute.o ${CPUDIR}/irq.o ${CPUDIR}/memory.o\
${CPUDIR}/spc700.o ${CPUDIR}/stable.o ${CPUDIR}/table.o\
${CPUDIR}/tableb.o ${CPUDIR}/tablec.o
GUIOBJ=${GUIDIR}/gui.o ${GUIDIR}/menu.o
VIDEOBJ=${VIDEODIR}/makev16b.o ${VIDEODIR}/makev16t.o ${VIDEODIR}/makevid.o\
${VIDEODIR}/mode716.o ${VIDEODIR}/mode716b.o ${VIDEODIR}/mode716d.o\
${VIDEODIR}/mode716e.o ${VIDEODIR}/mode716t.o ${VIDEODIR}/mode7.o\
${VIDEODIR}/mode7ext.o ${VIDEODIR}/mv16tms.o ${VIDEODIR}/newg162.o\
${VIDEODIR}/newgfx16.o ${VIDEODIR}/newgfx2.o ${VIDEODIR}/newgfx.o\
${VIDEODIR}/m716text.o ${VIDEODIR}/2xsaiw.o\
${VIDEODIR}/procvid.o ${VIDEODIR}/sw_draw.o\
${VIDEODIR}/hq2x16.o ${VIDEODIR}/hq2x32.o\
${VIDEODIR}/hq3x16.o ${VIDEODIR}/hq3x32.o\
${VIDEODIR}/hq4x16.o ${VIDEODIR}/hq4x32.o
WINOBJ=${WINDIR}/copyvwin.o \
${WINDIR}/winintrf.o ${WINDIR}/winlink.o ${WINDIR}/zloaderw.o\
${WINDIR}/ztcp.o ${WINDIR}/zipxw.o ${WINDIR}/zfilew.o
WINDOSOBJ=${DOSDIR}/debug.o ${DOSDIR}/joy.o ${DOSDIR}/modemrtn.o ${DOSDIR}/vesa2.o\
${DOSDIR}/initvid.o ${DOSDIR}/sw.o ${DOSDIR}/gppro.o ${DOSDIR}/vesa12.o\
${DOSDIR}/zsipx.o
JMAOBJ=${JMADIR}/7zlzma.o ${JMADIR}/crc32.o ${JMADIR}/iiostrm.o\
${JMADIR}/inbyte.o ${JMADIR}/jma.o ${JMADIR}/lzma.o ${JMADIR}/lzmadec.o\
${JMADIR}/winout.o ${JMADIR}/zsnesjma.o
PREOBJ=
ZIPOBJ=${ZIPDIR}/unzip.o ${ZIPDIR}/zpng.o
EFFECTSOBJ=${EFFECTSDIR}/burn.o ${EFFECTSDIR}/water.o ${EFFECTSDIR}/smoke.o
MAINOBJ=cfgload.o endmem.o init.o initc.o uic.o patch.o ui.o vcache.o version.o
OBJS=${CHIPSOBJ} ${CPUOBJ} ${WINOBJ} ${GUIOBJ} ${VIDEOBJ} ${ZIPOBJ} ${MAINOBJ} ${WINDOSOBJ} ${EFFECTSOBJ} ${JMAOBJ}
LIBS=
CFLAGS=-c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s
ASM=nasm
ASMFLAGS=-O1 -f win32 -D__WIN32__
CC=gcc
CPP=g++
.SUFFIXES: .c .cpp .asm
%.o : %.c
${CC} ${CFLAGS} -o$@ $<
%.o: %.cpp
${CPP} ${CFLAGS} -o$@ $<
%.o: %.asm
${ASM} ${ASMFLAGS} -o $@ $<
ALL: zsnesw.exe
zsnesw.exe: ${OBJS} ${WINDIR}/zsnes.o
g++ -ozsnesw.exe chips/dsp1proc.o chips/dsp2proc.o dos/sw.o dos/gppro.o dos/vesa12.o dos/zsipx.o dos/modemrtn.o dos/joy.o dos/debug.o dos/vesa2.o dos/initvid.o cfgload.o endmem.o init.o initc.o uic.o patch.o ui.o vcache.o effects/water.o effects/smoke.o effects/burn.o version.o video/procvid.o win/copyvwin.o win/winintrf.o win/winlink.o win/zloaderw.o win/ztcp.o win/zfilew.o win/zipxw.o video/makev16b.o video/makev16t.o video/makevid.o video/mode716.o video/mode716b.o video/mode716d.o video/mode716e.o video/mode716t.o video/mode7.o video/mode7ext.o video/mv16tms.o video/newg162.o video/newgfx16.o video/newgfx2.o video/newgfx.o video/m716text.o video/2xsaiw.o video/sw_draw.o video/hq2x16.o video/hq2x32.o video/hq3x16.o video/hq3x32.o video/hq4x16.o video/hq4x32.o gui/gui.o gui/menu.o cpu/addrni.o cpu/dma.o cpu/dsp.o cpu/dspproc.o cpu/execute.o cpu/irq.o cpu/memory.o cpu/spc700.o cpu/stable.o cpu/table.o cpu/tableb.o cpu/tablec.o chips/dsp1emu.o chips/fxemu2.o chips/fxemu2b.o chips/fxemu2c.o chips/fxtable.o chips/sa1proc.o chips/sa1regs.o chips/sfxproc.o chips/st10proc.o chips/seta10.o chips/sdd1emu.o zip/unzip.o zip/zpng.o jma/7zlzma.o jma/crc32.o jma/iiostrm.o jma/inbyte.o jma/jma.o jma/lzmadec.o jma/lzma.o jma/winout.o jma/zsnesjma.o win/zsnes.o -ldxguid -ldinput8 -lwsock32 -luser32 -lgdi32 -lshell32 -lwinmm -lz -lpng -mwindows
${WINDIR}/zsnes.o: ${WINDIR}/zsnes.rc
windres --include-dir ${WINDIR} ${WINDIR}/zsnes.rc -o${WINDIR}/zsnes.o
${WINDIR}/copyvwin.o: ${WINDIR}/copyvwin.asm macros.mac
${WINDIR}/winintrf.o: ${WINDIR}/winintrf.asm macros.mac
${WINDIR}/zfilew.o: ${WINDIR}/zfilew.c
${WINDIR}/zipxw.o: ${WINDIR}/zipxw.c
${WINDIR}/zloaderw.o: ${WINDIR}/zloaderw.c
${WINDIR}/ztcp.o: ${WINDIR}/ztcp.c
${WINDIR}/winlink.o: ${WINDIR}/winlink.cpp ${WINDIR}/resource.h
${CPP} ${CFLAGS} -O0 -o$@ $<
${ZIPDIR}/unzip.o: ${ZIPDIR}/unzip.c ${ZIPDIR}/zunzip.h
${ZIPDIR}/zpng.o: ${ZIPDIR}/zpng.c ${ZIPDIR}/zpng.h
${DOSDIR}/initvid.o:${DOSDIR}/initvid.asm macros.mac
${DOSDIR}/modemrtn.o: ${DOSDIR}/modemrtn.asm macros.mac
${DOSDIR}/zsipx.o: ${DOSDIR}/zsipx.asm
${DOSDIR}/debug.o: ${DOSDIR}/debug.asm macros.mac
${DOSDIR}/joy.o: ${DOSDIR}/joy.asm macros.mac
${DOSDIR}/vesa2.o: ${DOSDIR}/vesa2.asm macros.mac
${DOSDIR}/gppro.o: ${DOSDIR}/gppro.asm macros.mac
${DOSDIR}/sw.o: ${DOSDIR}/sw.asm macros.mac
${DOSDIR}/vesa12.o: ${DOSDIR}/vesa12.asm macros.mac
${EFFECTSDIR}/water.o: ${EFFECTSDIR}/water.c ${EFFECTSDIR}/fixsin.h
${EFFECTSDIR}/smoke.o: ${EFFECTSDIR}/smoke.c
${EFFECTSDIR}/burn.o: ${EFFECTSDIR}/burn.c
${VIDEODIR}/2xsaiw.o: ${VIDEODIR}/2xsaiw.asm macros.mac
${VIDEODIR}/procvid.o: ${VIDEODIR}/procvid.asm macros.mac ${VIDEODIR}/copyvid.inc ${VIDEODIR}/2xSaImmx.inc
${VIDEODIR}/sw_draw.o: ${VIDEODIR}/sw_draw.asm macros.mac
${VIDEODIR}/hq2x16.o: ${VIDEODIR}/hq2x16.asm macros.mac
${VIDEODIR}/hq2x32.o: ${VIDEODIR}/hq2x32.asm macros.mac
${VIDEODIR}/hq3x16.o: ${VIDEODIR}/hq3x16.asm macros.mac
${VIDEODIR}/hq3x32.o: ${VIDEODIR}/hq3x32.asm macros.mac
${VIDEODIR}/hq4x16.o: ${VIDEODIR}/hq4x16.asm macros.mac
${VIDEODIR}/hq4x32.o: ${VIDEODIR}/hq4x32.asm macros.mac
${CHIPDIR}/sa1regs.o: ${CHIPDIR}/sa1regs.asm macros.mac\
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
${CHIPDIR}/sfxproc.o: ${CHIPDIR}/sfxproc.asm macros.mac\
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
${CHIPDIR}/st10proc.o: ${CHIPDIR}/st10proc.asm macros.mac\
${CPUDIR}/regs.mac ${CPUDIR}/regsw.mac
${CHIPDIR}/seta10.o: ${CHIPDIR}/seta10.c
${CHIPDIR}/dsp1emu.o: ${CHIPDIR}/dsp1emu.c
${CHIPDIR}/dsp1proc.o: ${CHIPDIR}/dsp1proc.asm macros.mac
${CHIPDIR}/sdd1emu.o: ${CHIPDIR}/sdd1emu.c
ui.o: ui.asm macros.mac
cfgload.o:cfgload.asm macros.mac
init.o:init.asm macros.mac
initc.o:initc.c ${JMADIR}/zsnesjma.h
uic.o:uic.c
patch.o:patch.c
ALL:
rm version.o
version.o:version.c
${DOSDIR}/debug.o: ${DOSDIR}/debug.asm macros.mac
${CPUDIR}/addrni.o: ${CPUDIR}/addrni.asm
${CPUDIR}/execute.o: ${CPUDIR}/execute.asm macros.mac
${CPUDIR}/table.o: ${CPUDIR}/table.asm ${CPUDIR}/65816d.inc\
${CPUDIR}/address.inc ${CPUDIR}/addrni.inc ${CPUDIR}/e65816.inc\
${CPUDIR}/regs.mac ${CPUDIR}/regs.inc ${CPUDIR}/regsw.mac\
${CPUDIR}/regsw.inc macros.mac
${CPUDIR}/tableb.o: ${CPUDIR}/tableb.asm ${CPUDIR}/65816db.inc\
${CPUDIR}/address.inc ${CPUDIR}/addrni.inc ${CPUDIR}/e65816b.inc\
${CPUDIR}/regs.mac macros.mac
${CPUDIR}/tablec.o: ${CPUDIR}/tablec.asm ${CPUDIR}/65816dc.inc\
${CPUDIR}/address.inc ${CPUDIR}/addrni.inc ${CPUDIR}/e65816c.inc\
${CPUDIR}/regs.mac macros.mac
${CPUDIR}/stable.o: ${CPUDIR}/stable.asm ${CPUDIR}/s65816d.inc\
${CPUDIR}/saddress.inc ${CPUDIR}/saddrni.inc ${CPUDIR}/se65816.inc\
macros.mac
${CPUDIR}/memory.o: ${CPUDIR}/memory.asm macros.mac
${CPUDIR}/dma.o: ${CPUDIR}/dma.asm macros.mac
${DOSDIR}/dosintrf.o: ${DOSDIR}/dosintrf.asm macros.mac
vcache.o:vcache.asm macros.mac
${DOSDIR}/initvid.o:${DOSDIR}/initvid.asm macros.mac
${VIDEODIR}/makevid.o: ${VIDEODIR}/makevid.asm ${VIDEODIR}/vidmacro.mac\
macros.mac
${VIDEODIR}/makev16b.o: ${VIDEODIR}/makev16b.asm ${VIDEODIR}/vidmacro.mac\
macros.mac
${VIDEODIR}/makev16t.o: ${VIDEODIR}/makev16t.asm ${VIDEODIR}/vidmacro.mac\
macros.mac
${VIDEODIR}/mv16tms.o: ${VIDEODIR}/mv16tms.asm ${VIDEODIR}/vidmacro.mac\
macros.mac
${VIDEODIR}/mode7.o: ${VIDEODIR}/mode7.asm ${VIDEODIR}/mode7.mac\
macros.mac
${VIDEODIR}/mode716.o: ${VIDEODIR}/mode716.asm ${VIDEODIR}/mode716.mac\
macros.mac
${VIDEODIR}/mode716b.o:${VIDEODIR}/mode716b.asm ${VIDEODIR}/mode7.mac\
macros.mac
${VIDEODIR}/mode716t.o:${VIDEODIR}/mode716t.asm ${VIDEODIR}/mode7.mac\
macros.mac
${VIDEODIR}/mode716d.o:${VIDEODIR}/mode716d.asm ${VIDEODIR}/mode7.mac\
macros.mac
${VIDEODIR}/mode7ext.o:${VIDEODIR}/mode7ext.asm macros.mac
${VIDEODIR}/mode716e.o:${VIDEODIR}/mode716e.asm macros.mac
${VIDEODIR}/m716text.o:${VIDEODIR}/m716text.asm ${VIDEODIR}/mode7.mac\
macros.mac
${CPUDIR}/irq.o: ${CPUDIR}/irq.asm macros.mac
${CPUDIR}/dspproc.o: ${CPUDIR}/dspproc.asm macros.mac
${CPUDIR}/spc700.o:${CPUDIR}/spc700.asm macros.mac\
${CPUDIR}/regsw.mac ${CPUDIR}/spcdef.inc ${CPUDIR}/spcaddr.inc
${CPUDIR}/dsp.o: ${CPUDIR}/dsp.asm macros.mac
${DOSDIR}/vesa2.o: ${DOSDIR}/vesa2.asm macros.mac
${DOSDIR}/vesa12.o: ${DOSDIR}/vesa12.asm macros.mac
${DOSDIR}/joy.o: ${DOSDIR}/joy.asm macros.mac
${DOSDIR}/sw.o: ${DOSDIR}/sw.asm macros.mac
${GUIDIR}/gui.o: ${GUIDIR}/gui.asm ${GUIDIR}/guitools.inc\
${GUIDIR}/guimisc.inc ${GUIDIR}/guimouse.inc ${GUIDIR}/guiwindp.inc\
${GUIDIR}/guinetpl.inc ${GUIDIR}/guikeys.inc ${GUIDIR}/guicheat.inc\
${GUIDIR}/guicombo.inc ${GUIDIR}/guiload.inc macros.mac
${GUIDIR}/menu.o: ${GUIDIR}/menu.asm macros.mac
${VIDEODIR}/newgfx.o:${VIDEODIR}/newgfx.asm ${VIDEODIR}/vidmacro.mac\
${VIDEODIR}/newgfx2.mac ${VIDEODIR}/newgfx.mac macros.mac
${VIDEODIR}/newgfx2.o:${VIDEODIR}/newgfx2.asm ${VIDEODIR}/newgfxwn.mac\
${VIDEODIR}/newgfx.mac macros.mac
${VIDEODIR}/newgfx16.o: ${VIDEODIR}/newgfx16.asm macros.mac ${VIDEODIR}/vidmacro.mac\
${VIDEODIR}/newgfx16.mac ${VIDEODIR}/newg162.mac
${VIDEODIR}/newg162.o: macros.mac ${VIDEODIR}/newg162.asm ${VIDEODIR}/newg162.mac\
${VIDEODIR}/vidmacro.mac ${VIDEODIR}/newg16wn.mac
${CHIPDIR}/fxemu2.o: ${CHIPDIR}/fxemu2.asm ${CHIPDIR}/fxemu2.mac\
macros.mac
${CHIPDIR}/fxemu2b.o: ${CHIPDIR}/fxemu2b.asm ${CHIPDIR}/fxemu2.mac\
${CHIPDIR}/fxemu2b.mac
${CHIPDIR}/fxemu2c.o: ${CHIPDIR}/fxemu2c.asm macros.mac ${CHIPDIR}/fxemu2.mac\
${CHIPDIR}/fxemu2b.mac ${CHIPDIR}/fxemu2c.mac
${CHIPDIR}/fxtable.o: ${CHIPDIR}/fxtable.asm macros.mac
${DOSDIR}/gppro.o: ${DOSDIR}/gppro.asm macros.mac
${DOSDIR}/zsipx.o: ${DOSDIR}/zsipx.asm
${CHIPDIR}/sa1proc.o: ${CHIPDIR}/sa1proc.asm macros.mac
endmem.o: endmem.asm macros.mac
${DOSDIR}/modemrtn.o: ${DOSDIR}/modemrtn.asm macros.mac
${JMADIR}/7zlzma.o: ${JMADIR}/7zlzma.cpp
${CPP} ${CFLAGS} -fexceptions -o$@ $<
${JMADIR}/crc32.o: ${JMADIR}/crc32.cpp ${JMADIR}/crc32.h
${JMADIR}/iiostrm.o: ${JMADIR}/iiostrm.cpp
${JMADIR}/inbyte.o: ${JMADIR}/inbyte.cpp
${CPP} ${CFLAGS} -fexceptions -o$@ $<
${JMADIR}/jma.o: ${JMADIR}/jma.cpp ${JMADIR}/jma.h ${JMADIR}/crc32.h ${JMADIR}/portable.h
${CPP} ${CFLAGS} -fexceptions -o$@ $<
${JMADIR}/lzma.o: ${JMADIR}/lzma.cpp
${JMADIR}/lzmadec.o: ${JMADIR}/lzmadec.cpp
${CPP} ${CFLAGS} -fexceptions -o$@ $<
${JMADIR}/winout.o: ${JMADIR}/winout.cpp
${CPP} ${CFLAGS} -fexceptions -o$@ $<
${JMADIR}/zsnesjma.o: ${JMADIR}/zsnesjma.cpp ${JMADIR}/zsnesjma.h ${JMADIR}/jma.h
clean:
rm *.o
rm ${CHIPDIR}/*.o
rm ${CPUDIR}/*.o
rm ${VIDEODIR}/*.o
rm ${GUIDIR}/*.o
rm ${WINDIR}/*.o
rm ${ZIPDIR}/*.o
rm ${DOSDIR}/*.o
rm ${EFFECTSDIR}/*.o
rm ${JMADIR}/*.o
rm zsnesw.exe
-----------------------------------------------------------------------------------
I had to change the "\" in the linking process to "/" and the part where it says "ASMFLAGS=-O1 -f gnuwin32 -D__WIN32__" to "ASMFLAGS=-O1 -f win32 -D__WIN32__" to compile with NASM since gnuwin32 isn't a switch.
I also modified my link.win32 as it said to do in the beginning of makefile.mingw changing the "\" to "/".
-----------------------------------------------------------------------------------
/Fezsnesw.exe chips/dsp1proc.obj chips/dsp2proc.obj dos/sw.obj dos/gppro.obj dos/vesa12.obj dos/zsipx.obj dos/modemrtn.obj dos/joy.obj dos/debug.obj dos/vesa2.obj dos/initvid.obj cfgload.obj endmem.obj init.obj initc.obj uic.obj patch.obj ui.obj vcache.obj effects/water.obj effects/smoke.obj effects/burn.obj version.obj video/procvid.obj win/copyvwin.obj win/winintrf.obj win/winlink.obj win/zloaderw.obj win/ztcp.obj win/zfilew.obj win/zipxw.obj video/makev16b.obj video/makev16t.obj video/makevid.obj video/mode716.obj video/mode716b.obj video/mode716d.obj video/mode716e.obj video/mode716t.obj video/mode7.obj video/mode7ext.obj video/mv16tms.obj video/newg162.obj video/newgfx16.obj video/newgfx2.obj video/newgfx.obj video/m716text.obj video/2xsaiw.obj video/sw_draw.obj video/hq2x16.obj video/hq2x32.obj video/hq3x16.obj video/hq3x32.obj video/hq4x16.obj video/hq4x32.obj gui/gui.obj gui/menu.obj cpu/addrni.obj cpu/dma.obj cpu/dsp.obj cpu/dspproc.obj cpu/execute.obj cpu/irq.obj cpu/memory.obj cpu/spc700.obj cpu/stable.obj cpu/table.obj cpu/tableb.obj cpu/tablec.obj chips/dsp1emu.obj chips/fxemu2.obj chips/fxemu2b.obj chips/fxemu2c.obj chips/fxtable.obj chips/sa1proc.obj chips/sa1regs.obj chips/sfxproc.obj chips/st10proc.obj chips/seta10.obj chips/sdd1emu.obj zip/unzip.obj zip/zpng.obj jma/7zlzma.obj jma/crc32.obj jma/iiostrm.obj jma/inbyte.obj jma/jma.obj jma/lzmadec.obj jma/lzma.obj jma/winout.obj jma/zsnesjma.obj zlib.lib libpng.lib wsock32.lib user32.lib gdi32.lib shell32.lib winmm.lib dinput8.lib dxguid.lib /link /section:.text,erw
-----------------------------------------------------------------------------------
This is my build log:
-----------------------------------------------------------------------------------
nasm -O1 -f win32 -D__WIN32__ -o chips/sfxproc.o chips/sfxproc.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/fxemu2.o chips/fxemu2.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/dsp1proc.o chips/dsp1proc.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/fxemu2b.o chips/fxemu2b.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/fxemu2c.o chips/fxemu2c.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/fxtable.o chips/fxtable.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/sa1proc.o chips/sa1proc.asm
nasm -O1 -f win32 -D__WIN32__ -o chips/sa1regs.o chips/sa1regs.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ochips/dsp1emu.o chips/dsp1emu.c
nasm -O1 -f win32 -D__WIN32__ -o chips/st10proc.o chips/st10proc.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ochips/seta10.o chips/seta10.c
chips/seta10.c: In function `ST010DoCommand':
chips/seta10.c:383: warning: implicit declaration of function `abs'
nasm -O1 -f win32 -D__WIN32__ -o chips/dsp2proc.o chips/dsp2proc.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ochips/sdd1emu.o chips/sdd1emu.c
nasm -O1 -f win32 -D__WIN32__ -o cpu/addrni.o cpu/addrni.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/dma.o cpu/dma.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/dsp.o cpu/dsp.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/dspproc.o cpu/dspproc.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/execute.o cpu/execute.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/irq.o cpu/irq.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/memory.o cpu/memory.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/spc700.o cpu/spc700.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/stable.o cpu/stable.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/table.o cpu/table.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/tableb.o cpu/tableb.asm
nasm -O1 -f win32 -D__WIN32__ -o cpu/tablec.o cpu/tablec.asm
nasm -O1 -f win32 -D__WIN32__ -o win/copyvwin.o win/copyvwin.asm
nasm -O1 -f win32 -D__WIN32__ -o win/winintrf.o win/winintrf.asm
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -O0 -owin/winlink.o win/winlink.cpp
win/winlink.cpp: In function `void DDrawError()':
win/winlink.cpp:332: warning: embedded `\0' in format
win/winlink.cpp: In function `void DInputError()':
win/winlink.cpp
win/winlink.cpp: In function `bool InitInput()':
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
win/winlink.cpp
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -owin/zloaderw.o win/zloaderw.c
win/zloaderw.c: In function `WinMain':
win/zloaderw.c:213: warning: embedded `\0' in format
win/zloaderw.c:349: warning: embedded `\0' in format
win/zloaderw.c:374: warning: no return statement in function returning non-void
win/zloaderw.c:374: warning: control reaches end of non-void function
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -owin/ztcp.o win/ztcp.c
win/ztcp.c: In function `WaitForServer':
win/ztcp.c:406: warning: suggest parentheses around assignment used as truth value
win/ztcp.c: In function `GetLeft':
win/ztcp.c
win/ztcp.c: In function `ConnectServer':
win/ztcp.c:252: warning: 'host1' might be used uninitialized in this function
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -owin/zipxw.o win/zipxw.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -owin/zfilew.o win/zfilew.c
win/zfilew.c:510:8: warning: extra tokens at end of #endif directive
win/zfilew.c: In function `ZFileFindNext':
win/zfilew.c:876: warning: suggest parentheses around comparison in operand of &
win/zfilew.c: In function `ZFileFindFirst':
win/zfilew.c:891: warning: suggest parentheses around comparison in operand of &
nasm -O1 -f win32 -D__WIN32__ -o gui/gui.o gui/gui.asm
nasm -O1 -f win32 -D__WIN32__ -o gui/menu.o gui/menu.asm
nasm -O1 -f win32 -D__WIN32__ -o video/makev16b.o video/makev16b.asm
nasm -O1 -f win32 -D__WIN32__ -o video/makev16t.o video/makev16t.asm
nasm -O1 -f win32 -D__WIN32__ -o video/makevid.o video/makevid.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode716.o video/mode716.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode716b.o video/mode716b.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode716d.o video/mode716d.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode716e.o video/mode716e.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode716t.o video/mode716t.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode7.o video/mode7.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mode7ext.o video/mode7ext.asm
nasm -O1 -f win32 -D__WIN32__ -o video/mv16tms.o video/mv16tms.asm
nasm -O1 -f win32 -D__WIN32__ -o video/newg162.o video/newg162.asm
nasm -O1 -f win32 -D__WIN32__ -o video/newgfx16.o video/newgfx16.asm
nasm -O1 -f win32 -D__WIN32__ -o video/newgfx2.o video/newgfx2.asm
nasm -O1 -f win32 -D__WIN32__ -o video/newgfx.o video/newgfx.asm
nasm -O1 -f win32 -D__WIN32__ -o video/m716text.o video/m716text.asm
nasm -O1 -f win32 -D__WIN32__ -o video/2xsaiw.o video/2xsaiw.asm
nasm -O1 -f win32 -D__WIN32__ -o video/procvid.o video/procvid.asm
nasm -O1 -f win32 -D__WIN32__ -o video/sw_draw.o video/sw_draw.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq2x16.o video/hq2x16.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq2x32.o video/hq2x32.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq3x16.o video/hq3x16.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq3x32.o video/hq3x32.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq4x16.o video/hq4x16.asm
nasm -O1 -f win32 -D__WIN32__ -o video/hq4x32.o video/hq4x32.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ozip/unzip.o zip/unzip.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ozip/zpng.o zip/zpng.c
nasm -O1 -f win32 -D__WIN32__ -o cfgload.o cfgload.asm
nasm -O1 -f win32 -D__WIN32__ -o endmem.o endmem.asm
nasm -O1 -f win32 -D__WIN32__ -o init.o init.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -oinitc.o initc.c
initc.c: In function `SPC7_Convert_Upper':
initc.c
initc.c: In function `SPC7_Convert_Lower':
initc.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ouic.o uic.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -opatch.o patch.c
nasm -O1 -f win32 -D__WIN32__ -o ui.o ui.asm
nasm -O1 -f win32 -D__WIN32__ -o vcache.o vcache.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -oversion.o version.c
nasm -O1 -f win32 -D__WIN32__ -o dos/debug.o dos/debug.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/joy.o dos/joy.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/modemrtn.o dos/modemrtn.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/vesa2.o dos/vesa2.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/initvid.o dos/initvid.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/sw.o dos/sw.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/gppro.o dos/gppro.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/vesa12.o dos/vesa12.asm
nasm -O1 -f win32 -D__WIN32__ -o dos/zsipx.o dos/zsipx.asm
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -oeffects/burn.o effects/burn.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -oeffects/water.o effects/water.c
gcc -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -oeffects/smoke.o effects/smoke.c
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -fexceptions -ojma/7zlzma.o jma/7zlzma.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ojma/crc32.o jma/crc32.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ojma/iiostrm.o jma/iiostrm.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -fexceptions -ojma/inbyte.o jma/inbyte.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -fexceptions -ojma/jma.o jma/jma.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ojma/lzma.o jma/lzma.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -fexceptions -ojma/lzmadec.o jma/lzmadec.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -fexceptions -ojma/winout.o jma/winout.cpp
g++ -c -O3 -march=i586 -fno-exceptions -ffast-math -fomit-frame-pointer -fno-unroll-loops -Wall -Wno-unused -masm=intel -s -ojma/zsnesjma.o jma/zsnesjma.cpp
windres --include-dir win win/zsnes.rc -owin/zsnes.o
g++ -ozsnesw.exe chips/dsp1proc.o chips/dsp2proc.o dos/sw.o dos/gppro.o dos/vesa12.o dos/zsipx.o dos/modemrtn.o dos/joy.o dos/debug.o dos/vesa2.o dos/initvid.o cfgload.o endmem.o init.o initc.o uic.o patch.o ui.o vcache.o effects/water.o effects/smoke.o effects/burn.o version.o video/procvid.o win/copyvwin.o win/winintrf.o win/winlink.o win/zloaderw.o win/ztcp.o win/zfilew.o win/zipxw.o video/makev16b.o video/makev16t.o video/makevid.o video/mode716.o video/mode716b.o video/mode716d.o video/mode716e.o video/mode716t.o video/mode7.o video/mode7ext.o video/mv16tms.o video/newg162.o video/newgfx16.o video/newgfx2.o video/newgfx.o video/m716text.o video/2xsaiw.o video/sw_draw.o video/hq2x16.o video/hq2x32.o video/hq3x16.o video/hq3x32.o video/hq4x16.o video/hq4x32.o gui/gui.o gui/menu.o cpu/addrni.o cpu/dma.o cpu/dsp.o cpu/dspproc.o cpu/execute.o cpu/irq.o cpu/memory.o cpu/spc700.o cpu/stable.o cpu/table.o cpu/tableb.o cpu/tablec.o chips/dsp1emu.o chips/fxemu2.o chips/fxemu2b.o chips/fxemu2c.o chips/fxtable.o chips/sa1proc.o chips/sa1regs.o chips/sfxproc.o chips/st10proc.o chips/seta10.o chips/sdd1emu.o zip/unzip.o zip/zpng.o jma/7zlzma.o jma/crc32.o jma/iiostrm.o jma/inbyte.o jma/jma.o jma/lzmadec.o jma/lzma.o jma/winout.o jma/zsnesjma.o win/zsnes.o -ldxguid -ldinput8 -lwsock32 -luser32 -lgdi32 -lshell32 -lwinmm -lz -lpng -mwindows
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
Warning: .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
rm version.o
-----------------------------------------------------------------------------------
That's the Crash in windows.
-----------------------------------------------------------------------------------
AppName: zsnesw.exe AppVer: 0.0.0.0 ModName: msvcrt.dll
ModVer: 7.0.2600.1106 Offset: 000335d1
-----------------------------------------------------------------------------------
When I try to use my build of ZSNES it creates the corresponding zsnesw.cfg and then crashes. I'm not very familiar with debugging but I hope this will help in having zsnes build sucessfully under MinGW/MSYS.