mirror of
https://github.com/mupen64plus/mupen64plus-oldsvn.git
synced 2024-05-13 09:49:44 -04:00
Removed defunct and unlicensed VCR functions, and language files. FSF address fixes.
This commit is contained in:
parent
87ddd10e52
commit
bc2476ede2
17
Makefile
17
Makefile
|
@ -54,9 +54,6 @@ endif
|
|||
ifeq ($(DBG_PROFILE), 1)
|
||||
CFLAGS += -DPROFILE_R4300
|
||||
endif
|
||||
ifeq ($(VCR), 1)
|
||||
CFLAGS += -DVCR_SUPPORT
|
||||
endif
|
||||
ifeq ($(LIRC), 1)
|
||||
CFLAGS += -DWITH_LIRC
|
||||
endif
|
||||
|
@ -188,12 +185,6 @@ else
|
|||
OBJ_DYNAREC = r4300/empty_dynarec.o
|
||||
endif
|
||||
|
||||
OBJ_VCR = \
|
||||
main/vcr.o \
|
||||
main/vcr_compress.o \
|
||||
main/vcr_resample.o \
|
||||
main/gui_gtk/vcrcomp_dialog.o
|
||||
|
||||
OBJ_LIRC = \
|
||||
main/lirc.o
|
||||
|
||||
|
@ -283,10 +274,6 @@ ifeq ($(DBG), 1)
|
|||
OBJECTS += $(OBJ_DBG) $(OBJ_GTK_DBG_GUI)
|
||||
LIBS += -lopcodes -lbfd
|
||||
endif
|
||||
ifeq ($(VCR), 1)
|
||||
OBJECTS += $(OBJ_VCR)
|
||||
LIBS += $(AVIFILE_LIBS)
|
||||
endif
|
||||
ifeq ($(LIRC), 1)
|
||||
OBJECTS += $(OBJ_LIRC)
|
||||
LDFLAGS += -llirc_client
|
||||
|
@ -312,7 +299,6 @@ targets:
|
|||
@echo " uninstall == Uninstall Mupen64Plus and all plugins"
|
||||
@echo " Options:"
|
||||
@echo " BITS=32 == build 32-bit binaries on 64-bit machine"
|
||||
@echo " VCR=1 == enable video recording"
|
||||
@echo " LIRC=1 == enable LIRC support"
|
||||
@echo " NO_RESAMP=1 == disable libsamplerate support in jttl_audio"
|
||||
@echo " NO_ASM=1 == build without assembly (no dynamic recompiler or MMX/SSE code)"
|
||||
|
@ -379,9 +365,6 @@ main/gui_kde4/settings.o: main/gui_kde4/settings.cpp
|
|||
.c.o:
|
||||
$(CC) -o $@ $(CFLAGS) $(SDL_FLAGS) -c $<
|
||||
|
||||
main/vcr_compress.o: main/vcr_compress.cpp
|
||||
$(CXX) -o $@ $(CFLAGS) $(AVIFILE_FLAGS) -c $<
|
||||
|
||||
plugins/blight_input.so: FORCE
|
||||
$(MAKE) -C blight_input all
|
||||
@$(CP) ./blight_input/blight_input.so ./plugins/blight_input.so
|
||||
|
|
|
@ -1,30 +1,32 @@
|
|||
//hq2x filter demo program
|
||||
//----------------------------------------------------------
|
||||
//Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
|
||||
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU Lesser General Public
|
||||
//License as published by the Free Software Foundation; either
|
||||
//version 2.1 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
|
||||
//Lesser General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU Lesser 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
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - hq2x.cpp *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <conio.h>
|
||||
#include <windows.h>
|
||||
#endif // _WIN32
|
||||
//#include "Image.h"
|
||||
|
||||
static int LUT16to32[65536];
|
||||
static int RGBtoYUV[65536];
|
||||
|
|
|
@ -1,30 +1,32 @@
|
|||
//hq4x filter demo program
|
||||
//----------------------------------------------------------
|
||||
//Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
|
||||
|
||||
//This program is free software; you can redistribute it and/or
|
||||
//modify it under the terms of the GNU Lesser General Public
|
||||
//License as published by the Free Software Foundation; either
|
||||
//version 2.1 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
|
||||
//Lesser General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU Lesser 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
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - hq4x.cpp *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <conio.h>
|
||||
#include <windows.h>
|
||||
#endif // _WIN32
|
||||
//#include "Image.h"
|
||||
|
||||
static int LUT16to32[65536];
|
||||
static int RGBtoYUV[65536];
|
||||
|
|
151
lang/catalan.lng
151
lang/catalan.lng
|
@ -1,151 +0,0 @@
|
|||
; catalan translation by tux <tux@lleida.org>
|
||||
[Catalan]
|
||||
|
||||
Ok=Accepta
|
||||
Cancel=Cancel·la
|
||||
|
||||
Yes=Si
|
||||
No=No
|
||||
Abort=Cancel·la
|
||||
Retry=Reintenta
|
||||
Ignore=Ignora
|
||||
Continue=Continua
|
||||
|
||||
Error=Error
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Arxiu
|
||||
_Open Rom...=_Obrir ROM...
|
||||
_Close Rom=_Tancar ROM
|
||||
_Language=_Idioma
|
||||
_Exit=_Sortir
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulació
|
||||
_Start=_Començar
|
||||
Pause/_Continue=Parar/_Continuar
|
||||
Sto_p=_Parar
|
||||
Save State=Guardar Estat
|
||||
Save State As=Guardar Estat Com
|
||||
Restore State=Restaurar Estat
|
||||
Load State=Carregar Estat
|
||||
Current save state=Guardar estat actual
|
||||
|
||||
; Options Menu
|
||||
_Options=_Opcions
|
||||
_Configure...=_Configurar...
|
||||
_Video Settings...=Configurar _Vídeo...
|
||||
_Audio Settings...=Configurar _Àudio...
|
||||
_Input Settings...=Configurar _Controladors...
|
||||
_Full Screen=_Pantalla Completa
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Activar
|
||||
|
||||
; Help Menu
|
||||
_Help=_Ajuda
|
||||
_About...=_Sobre...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Obrir ROM
|
||||
Start Emulation=Començar Emulació
|
||||
Pause/Continue Emulation=Parar/Continuar Emulació
|
||||
Stop Emulation=Parar Emulació
|
||||
Configure=Configurar
|
||||
Full Screen=Pantalla Completa
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Nom
|
||||
Country=País
|
||||
Size=Tamany
|
||||
Comments=Comentaris
|
||||
File Name=Nom del fitxer
|
||||
Play Rom=Executar ROM
|
||||
Rom Properties=Propietats de la ROM
|
||||
Refresh=Refrescar
|
||||
Total Roms: %d=Total ROMs: %d
|
||||
Scanning directory '%s'...=Buscant al directori '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Directoris de ROMs rastrejats, %d ROMs trovades
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japó
|
||||
Germany=Alemanya
|
||||
USA=USA
|
||||
France=França
|
||||
Italy=Italia
|
||||
Japan=Japó
|
||||
Spain=Espanya
|
||||
Australia (0x%2.2X)=Australia (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Desconegut (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Informació de la ROM
|
||||
Calculate=Calcular
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=ROM "%s" carregada.
|
||||
Loading Rom: %d%%=Carregant ROM: %d%%
|
||||
Rom closed.=ROM tancada.
|
||||
Emulation started (PID: %d)=Emulació començada (PID: %d)
|
||||
Emulation paused.=Emulació parada.
|
||||
Emulation continued.=Emulació continuada.
|
||||
Stopping emulation.=Parant emulació.
|
||||
Emulation stopped.=Emulació parada.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Volcat incorrecte?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=La ROM que está intentant carregar es probablement un volcat incorrecte\nTingui en compte que ens pot portar a resultats inesperats.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La ROM que está intentant carregar es probablement un volcat incorrecte\nTingui en compte que ens pot portar a resultats inesperats.\nDesitja continuar amb l'execució?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=La ROM que està intentant carregar es probablement un hack!\nTingui en compte que ens pot portar a resultats inesperats.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La ROM que està intentant carregar es probablement un hack!\nTingui en compte que ens pot portar a resultats inesperats.\nDesitja continuar amb l'execució?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulació en procés. Desitja parar i carregar la ROM escollida?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulació en procés. Desitja parar i carregar una ROM?
|
||||
Stop Emulation?=Parar l'emulació?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulació en procés. Desitja parar-la i tancar la ROM?
|
||||
No Rom Loaded=No hi ha cap ROM carregada
|
||||
There is no Rom loaded.\nDo you want to load one?=No hi ha cap ROM.\nDesitja carregar-ne una?
|
||||
No graphics plugin selected! Do you\nwant to select one?=No hi ha cap plugin gràfic sel·leccionat! Desitja sel·leccionar-ne un?
|
||||
No audio plugin selected! Do you\nwant to select one?=No hi ha cap plugin de so sel·leccionat! Desitja sel·leccionar-ne un?
|
||||
No input plugin selected! Do you\nwant to select one?=No hi ha cap plugin d'entrada sel·leccionat! Desea sel·leccionar-ne un?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=Nucli de la CPU
|
||||
Interpreter=Intèrpret
|
||||
Dynamic Recompiler=Recompilador Dinàmic
|
||||
Pure Interpreter=Intèrpret Pur
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Plugin Gràfic
|
||||
Audio Plugin=Plugin d'Àudio
|
||||
Input Plugin=Plugin Controlador
|
||||
Config=Configurar
|
||||
Test=Provar
|
||||
About=Sobre
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Directoris de ROMs
|
||||
Add=Afegir
|
||||
Remove=Eliminar
|
||||
Remove All=Eliminar Tots
|
||||
Recursively scan rom directories=Revisar directoris de ROMs recursivament
|
||||
Select Rom Directory=Sel·leccionar Directori de ROMs
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Sobre Mupen64Plus
|
||||
|
150
lang/dutch.lng
150
lang/dutch.lng
|
@ -1,150 +0,0 @@
|
|||
; Dutch translation by I. Clarysse
|
||||
[Nederlands]
|
||||
|
||||
Ok=OK
|
||||
Cancel=Annuleren
|
||||
|
||||
Yes=Ja
|
||||
No=Nee
|
||||
Abort=Annuleren
|
||||
Retry=Opnieuw
|
||||
Ignore=Ignore
|
||||
Continue=Verder gaan
|
||||
|
||||
Error=Fout
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Bestand
|
||||
_Open Rom...=_Open Rom...
|
||||
_Close Rom=_Sluit Rom
|
||||
_Language=_Taal
|
||||
_Exit=_Afsluiten
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulatie
|
||||
_Start=_Start
|
||||
Pause/_Continue=_Pause/Verder
|
||||
Sto_p=Sto_p
|
||||
Save State=Bewaar status
|
||||
Save State As=Bewaar status als...
|
||||
Restore State=Herstel status
|
||||
Load State=Laad status
|
||||
Current save state=Huidige status
|
||||
|
||||
; Options Menu
|
||||
_Options=_Opties
|
||||
_Configure...=_Configuratie...
|
||||
_Video Settings...=_Video Instellingen...
|
||||
_Audio Settings...=_Audio Instellingen...
|
||||
_Input Settings...=_Input Instellingen...
|
||||
_Full Screen=_Volledig Scherm
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Actief
|
||||
|
||||
; Help Menu
|
||||
_Help=_Hulp
|
||||
_About...=Over...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Open Rom
|
||||
Start Emulation=Start emulatie
|
||||
Pause/Continue Emulation=Pause/Vervolg Emulatie
|
||||
Stop Emulation=Emulatie Stoppen
|
||||
Configure=Configuratie
|
||||
Full Screen=Volledig Scherm
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Naam
|
||||
Country=Land
|
||||
Size=Grootte
|
||||
Comments=Commentaar
|
||||
File Name=Bestandsnaam
|
||||
Play Rom=Speel Rom
|
||||
Rom Properties=Rom Eigenschappen
|
||||
Refresh=Hernieuw
|
||||
Total Roms: %d=Aantal Roms: %d
|
||||
Scanning directory '%s'...=Doorzoeken directory '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Rom directories doorzocht, %d Roms gevonden
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japan
|
||||
Germany=Duitsland
|
||||
USA=USA
|
||||
France=Frankrijk
|
||||
Italy=Italie
|
||||
Japan=Japan
|
||||
Spain=Spanje
|
||||
Australia (0x%2.2X)=Australie (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Onbekend (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Rom Info
|
||||
Calculate=Bereken
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=Rom "%s" geladen.
|
||||
Loading Rom: %d%%=Laden Rom: %d%%
|
||||
Rom closed.=Rom gesloten.
|
||||
Emulation started (PID: %d)=Emulatie gestart (PID: %d)
|
||||
Emulation paused.=Emulatie gepauseerd.
|
||||
Emulation continued.=Emulatie herstart.
|
||||
Stopping emulation.=Emulatie wordt gestopt.
|
||||
Emulation stopped.=Emulatie gestopt.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Slechte dump?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=De Rom die u wilt laden is waarschijnlijk een slechte dump!\nWees gewaarschuwd dat dit waarschijnlijk onverwachte resultaten zal opleveren.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=De Rom die u wilt laden is waarschijnlijk een slechte dump!\nWees gewaarschuwd dat dit waarschijnlijk onverwachte resultaten zal opleveren.\nWilt u deze Rom nog steeds opstarten ?\n
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=De Rom die u wilt laden is waarschijnlijk een hack!\nWees gewaarschuwd dat dit waarschijnlijk onverwachte resultaten zal opleveren.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=De Rom die u wilt laden is waarschijnlijk een hack!\nWees gewaarschuwd dat dit waarschijnlijk onverwachte resultaten zal opleveren.\nWilt u deze Rom nog steeds opstarten ?\n
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=De emulatie draait nog. Wilt u\nl'arréter et charger la rom sélectionnée?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=De emulatie draait nog. Wilt u\ndeze stoppen en een rom inladen?
|
||||
Stop Emulation?=De emulatie stoppen ?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=De emulatie draait nog. Wilt u\ndeze stoppen en de rom sluiten?
|
||||
No Rom Loaded=Geen Rom geladen
|
||||
There is no Rom loaded.\nDo you want to load one?=Geen Rom geladen.\nWilt u er een inladen?
|
||||
No graphics plugin selected! Do you\nwant to select one?=Geen grafische plugin geselecteerd! Wilt u er nu een kiezen?
|
||||
No audio plugin selected! Do you\nwant to select one?=Geen audio plugin geselecteerd! Wilt u er nu een kiezen?
|
||||
No input plugin selected! Do you\nwant to select one?=Geen input plugin geselecteerd! Wilt u er nu een kiezen?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=CPU kern
|
||||
Interpreter=Interpreter
|
||||
Dynamic Recompiler=Dynamische Recompiler
|
||||
Pure Interpreter=Pure Interpreter
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Grafische Plugin
|
||||
Audio Plugin=Audio Plugin
|
||||
Input Plugin=Input Plugin
|
||||
Config=Configuratie
|
||||
Test=Test
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Rom Directories
|
||||
Add=Toevoegen
|
||||
Remove=Wis
|
||||
Remove All=Alles Wissen
|
||||
Recursively scan rom directories=Recursief rom directories doorzoeken
|
||||
Select Rom Directory=Rom Directory selecteren
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Over Mupen64Plus
|
||||
|
|
@ -1,3 +1,24 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - english.lng *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2008 Tillin9 *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
; english language
|
||||
[English]
|
||||
|
||||
|
|
150
lang/french.lng
150
lang/french.lng
|
@ -1,150 +0,0 @@
|
|||
; french translation by Hacktarux
|
||||
[Français]
|
||||
|
||||
Ok=Valider
|
||||
Cancel=Abandonner
|
||||
|
||||
Yes=Oui
|
||||
No=Non
|
||||
Abort=Abandonner
|
||||
Retry=Réessayer
|
||||
Ignore=Ignorer
|
||||
Continue=Continuer
|
||||
|
||||
Error=Erreur
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Fichier
|
||||
_Open Rom...=_Ouvrir Rom...
|
||||
_Close Rom=Fer_mer Rom
|
||||
_Language=_Langue
|
||||
_Exit=_Quitter
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulation
|
||||
_Start=_Démarrer
|
||||
Pause/_Continue=Mettre en _pause/Continuer
|
||||
Sto_p=_Sto_pper
|
||||
Save State=Sauver statut
|
||||
Save State As=Sauver statut sous...
|
||||
Restore State=Restaurer statut
|
||||
Load State=Charger statut
|
||||
Current save state=Statut courant
|
||||
|
||||
; Options Menu
|
||||
_Options=_Options
|
||||
_Configure...=_Configurer...
|
||||
_Video Settings...=Configurer _Video...
|
||||
_Audio Settings...=Configurer _Audio...
|
||||
_Input Settings...=Configurer Contro_lleurs...
|
||||
_Full Screen=_Plein Ecran
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Activé
|
||||
|
||||
; Help Menu
|
||||
_Help=_Aide
|
||||
_About...=A _Propos...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Ouvrir Rom
|
||||
Start Emulation=Démarrer l'emulation
|
||||
Pause/Continue Emulation=Mettre en pause l'emulation/Continuer
|
||||
Stop Emulation=Emulation Stoppée
|
||||
Configure=Configurer
|
||||
Full Screen=Plein Ecran
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Nom
|
||||
Country=Pays
|
||||
Size=Taille
|
||||
Comments=Commentaires
|
||||
File Name=Nom du fichier
|
||||
Play Rom=Lancer la rom
|
||||
Rom Properties=Propriétés Rom
|
||||
Refresh=Raffraichir
|
||||
Total Roms: %d=Total Roms: %d
|
||||
Scanning directory '%s'...=Parcours des répertoires '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Répertoires de Rom parcourus, %d Roms trouvée
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japon
|
||||
Germany=Allemagne
|
||||
USA=USA
|
||||
France=France
|
||||
Italy=Italie
|
||||
Japan=Japon
|
||||
Spain=Espagne
|
||||
Australia (0x%2.2X)=Australie (0x%2.2X)
|
||||
Europe (0x%02X)=Europe (0x%02X)
|
||||
Unknown (0x%02X)=Inconnu (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Informations Rom
|
||||
Calculate=Calculer
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=Rom "%s" geladen.
|
||||
Loading Rom: %d%%=Chargement Rom: %d%%
|
||||
Rom closed.=Rom fermée.
|
||||
Emulation started (PID: %d)=Emulation démarrée (PID: %d)
|
||||
Emulation paused.=Emulation en pause.
|
||||
Emulation continued.=L'emulation redémarre.
|
||||
Stopping emulation.=Emulation en cours d'arrêt.
|
||||
Emulation stopped.=Emulation arrétée.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Mauvais dump?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=La Rom que vous êtes en train de chargée est probablement un mauvais dump!\nSoyez prévenus que cela peut probablement causer des erreurs inattendues.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La Rom que vous êtes en train de chargée est probablement un mauvais dump!\nSoyez prévenus que cela peut probablement causer des erreurs inattendues.\nEst-ce-que vous voulez toujours la chargée ?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=La Rom que vous êtes en train de chargée est probablement hackée!\nSoyez prévenus que cela peut probablement causer des erreurs inattendues.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La Rom que vous êtes en train de chargée est probablement hackée!\nSoyez prévenus que cela peut probablement causer des erreurs inattendues.\nEst-ce-que vous voulez toujours la chargée ?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=L'émulation n'est pas arrétée. Voulez vous\nl'arréter et charger la rom sélectionnée?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=L'émulation n'est pas arrétée. Voulez vous\nl'arréter et charger une rom?
|
||||
Stop Emulation?=Stopper l'émulation ?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=L'émulation n'est pas arrétée. Voulez vous\nl'arrétrer et fermer la rom?
|
||||
No Rom Loaded=Aucune Rom chargée
|
||||
There is no Rom loaded.\nDo you want to load one?=Aucune rom chargée.\nVoulez vous en charger une?
|
||||
No graphics plugin selected! Do you\nwant to select one?=Aucun plugin graphique séléctionné! Voulez vous\nen séléctionner un?
|
||||
No audio plugin selected! Do you\nwant to select one?=Aucun plugin audio séléctionné! Voulez vous\nen séléctionner un?
|
||||
No input plugin selected! Do you\nwant to select one?=Aucun plugin controlleur séléctionné! Voulez vous\nen séléctionner un?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=Noyau CPU
|
||||
Interpreter=Interpreteur
|
||||
Dynamic Recompiler=Recompilateur Dynamique
|
||||
Pure Interpreter=Pure Interpreteur
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Plugin graphique
|
||||
Audio Plugin=Plugin Audio
|
||||
Input Plugin=Plugin Controlleur
|
||||
Config=Configurer
|
||||
Test=Tester
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Répertoires Rom
|
||||
Add=Ajouter
|
||||
Remove=Enlever
|
||||
Remove All=Enlever tout
|
||||
Recursively scan rom directories=Parcours récursivement les répertoires
|
||||
Select Rom Directory=Sélectionner un répertoire de Rom
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=A propos de Mupen64Plus
|
||||
|
155
lang/german.lng
155
lang/german.lng
|
@ -1,155 +0,0 @@
|
|||
; german translation by blight@fuckmicrosoft.com
|
||||
[Deutsch]
|
||||
|
||||
Ok=Ok
|
||||
Cancel=Abbrechen
|
||||
|
||||
Yes=Ja
|
||||
No=Nein
|
||||
Abort=Abbrechen
|
||||
Retry=Wiederholen
|
||||
Ignore=Ignorieren
|
||||
Continue=Fortsetzen
|
||||
|
||||
Info=Info
|
||||
Error=Fehler
|
||||
Confirm=Bestätige
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Datei
|
||||
_Open Rom...=Rom _Laden...
|
||||
_Close Rom=Rom _Schließen
|
||||
_Language=_Sprache
|
||||
_Exit=B_eenden
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulation
|
||||
_Start=_Starten
|
||||
Pause/_Continue=_Anhalten/Fortsetzen
|
||||
Sto_p=Sto_ppen
|
||||
Save State=Status speichern
|
||||
Save State As=Status speichern als
|
||||
Restore State=Status wiederherstellen
|
||||
Load State=Status laden
|
||||
Current save state=Aktueller Status
|
||||
|
||||
; Options Menu
|
||||
_Options=_Optionen
|
||||
_Configure...=_Einstellungen...
|
||||
_Video Settings...=_Video Optionen...
|
||||
_Audio Settings...=_Audio Optionen...
|
||||
_Input Settings...=_Eingabe Optionen...
|
||||
_Full Screen=_Vollbild
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Aktivieren
|
||||
|
||||
; Help Menu
|
||||
_Help=_Hilfe
|
||||
_About...=_Über...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Rom öffnen
|
||||
Start Emulation=Emulation Starten
|
||||
Pause/Continue Emulation=Emulation Anhalten/Fortsetzen
|
||||
Stop Emulation=Emulation Stoppen
|
||||
Configure=Einstellungen
|
||||
Full Screen=Vollbild
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Name
|
||||
Country=Land
|
||||
Size=Größe
|
||||
Comments=Kommentare
|
||||
File Name=Dateiname
|
||||
Play Rom=Rom spielen
|
||||
Rom Properties=Rom Eigenschaften
|
||||
Refresh=Aktualisieren
|
||||
Total Roms: %d=Rom anzahl: %d
|
||||
Scanning directory '%s'...=Durchsuche Verzeichnis '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Rom Verzeichnisse durchsucht, %d Roms gefunden
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japan
|
||||
Germany=Deutschland
|
||||
USA=USA
|
||||
France=Frankreich
|
||||
Italy=Italien
|
||||
Japan=Japan
|
||||
Spain=Spanien
|
||||
Australia (0x%2.2X)=Australien (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Unbekannt (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Rom Informationen
|
||||
Calculate=Berechnen
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=Rom "%s" geladen.
|
||||
Loading Rom: %d%%=Lade Rom: %d%%
|
||||
Rom closed.=Rom geschlossen.
|
||||
Emulation started (PID: %d)=Emulation gestartet (PID: %d)
|
||||
Emulation paused.=Emulation angehalten.
|
||||
Emulation continued.=Emulation fortgesetzt.
|
||||
Stopping emulation.=Stoppe Emulation an.
|
||||
Emulation stopped.=Emulation gestoppt.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Schlechter dump?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=Das Rom welches Sie versuchen zu laden ist möglicherweise\nein schlechter dump.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=Das Rom welches Sie versuchen zu laden ist möglicherweise\nein schlechter dump. Wollen Sie es dennoch laden?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=Das Rom welches Sie versuchen zu laden ist möglicherweise\nein Hack.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=Das Rom welches Sie versuchen zu laden ist möglicherweise\nein Hack. Wollen Sie es dennoch laden?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulation stoppen und ausgewähles Rom laden?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulation stoppen und rom laden?
|
||||
Stop Emulation?=Emulation anhalten?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulation stoppen und rom schließen?
|
||||
No Rom Loaded=Kein Rom geladen.
|
||||
There is no Rom loaded.\nDo you want to load one?=Kein Rom geladen. Rom laden?
|
||||
Couldn't spawn core thread!=Konnte Emulation nicht starten!
|
||||
Couldn't pause core thread: %s!=Konnte Emulation nicht anhalten: %s!
|
||||
Couldn't continue core thread: %s!=Konnte Emulation nicht fortsetzen: %s!
|
||||
No graphics plugin selected! Do you\nwant to select one?=Kein Grafik Plugin ausgewählt.\nKonfigurationsdialog anzeigen?
|
||||
No audio plugin selected! Do you\nwant to select one?=Kein Audio Plugin ausgewählt.\nKonfigurationsdialog anzeigen?
|
||||
No input plugin selected! Do you\nwant to select one?=Kein Eingabe Plugin ausgewählt.\nKonfigurationsdialog anzeigen?
|
||||
Emulation needs to be restarted in order\nto activate the debugger. Do you want\nthis to happen?=Um den Debugger zu aktivieren muss der Kern neugestartet werden.\nKern neustarten?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=CPU Kern
|
||||
Interpreter=Interpreter
|
||||
Dynamic Recompiler=Dynamischer Rekompilierer
|
||||
Pure Interpreter=Purer Interpreter
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Gfx Plugin
|
||||
Audio Plugin=Audio Plugin
|
||||
Input Plugin=Eingabe Plugin
|
||||
Config=Konfigurieren
|
||||
Test=Testen
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Rom Verzeichnisse
|
||||
Add=Hinzufügen
|
||||
Remove=Entfernen
|
||||
Remove All=Alle Entfernen
|
||||
Recursively scan rom directories=Rom Verzeichnisse rekursiv durchsuchen
|
||||
Select Rom Directory=Rom Verzeichniss auswählen
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Über Mupen64Plus
|
151
lang/italian.lng
151
lang/italian.lng
|
@ -1,151 +0,0 @@
|
|||
; Italian translation by nero <nero78@yahoo.com>
|
||||
[Italiano]
|
||||
|
||||
Ok=Accetta
|
||||
Cancel=Annulla
|
||||
|
||||
Yes=Si
|
||||
No=No
|
||||
Abort=Abbandona
|
||||
Retry=Riprova
|
||||
Ignore=Ignora
|
||||
Continue=Continua
|
||||
|
||||
Error=Errore
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_File
|
||||
_Open Rom...=_Apri Rom...
|
||||
_Close Rom=_Chiudi Rom
|
||||
_Language=_Lingua
|
||||
_Exit=_Esci
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulation
|
||||
_Start=_Avvia
|
||||
Pause/_Continue=_Pausa/Continua
|
||||
Sto_p=_Ferma
|
||||
Save State=Salva lo stato
|
||||
Save State As=Salva lo stato come...
|
||||
Restore State=Ripristina lo stato
|
||||
Load State=Carica lo stato
|
||||
Current save state=Salva lo stato corrente
|
||||
|
||||
; Options Menu
|
||||
_Options=_Opzioni
|
||||
_Configure...=_Configurazione...
|
||||
_Video Settings...=Configura _Video...
|
||||
_Audio Settings...=Configura _Audio...
|
||||
_Input Settings...=Configura controller...
|
||||
_Full Screen=_Schermo intero
|
||||
|
||||
; Debugger
|
||||
_Debugger=Abilita _Debugger
|
||||
_Enable=_Attiva
|
||||
|
||||
; Help Menu
|
||||
_Help=_Aiuto
|
||||
_About...=A _Proposito...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Apri rom
|
||||
Start Emulation=inizia emulazione
|
||||
Pause/Continue Emulation=_Pausa emulazione/continua
|
||||
Stop Emulation=Ferma emulazione
|
||||
Configure=Configura
|
||||
Full Screen=Schermo intero
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Nome
|
||||
Country=Stato
|
||||
Size=Dimenzione
|
||||
Comments=Commenti
|
||||
File Name=Nome del file
|
||||
Play Rom=Lancia rom
|
||||
Rom Properties=Proprieta' rom
|
||||
Refresh=Aggiorna
|
||||
Total Roms: %d=Totale Rom: %d
|
||||
Scanning directory '%s'...= Scanzione cartella '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Cartelle analizzate, %d Rom trovate
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=America/Giappone
|
||||
Germany=Germania
|
||||
USA=America
|
||||
France=Francia
|
||||
Italy=Italia
|
||||
Japan=Giappone
|
||||
Spain=Spagna
|
||||
Australia (0x%2.2X)=Australia (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Sconosciuto (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Informazioni Rom
|
||||
Calculate=Calcola
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=Rom "%s" Caricata.
|
||||
Loading Rom: %d%%=Caricamento Rom: %d%%
|
||||
Rom closed.=Rom chiusa.
|
||||
Emulation started (PID: %d)=Emulazione iniziata (PID: %d)
|
||||
Emulation paused.=Pausa Emulazione.
|
||||
Emulation continued.=emulazione ripresa.
|
||||
Stopping emulation.=Arresto emulazione in corso.
|
||||
Emulation stopped.=Emulazione arrestata.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Pessimo dump?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=La Rom che stai provando a caricare è probabilmente un pessimo dumb!\nAttenzione che questo potrebbe provocare risultati inattesi.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La Rom che stai provando a caricare è probabilmente un pessimo dumb!\nAttenzione che questo potrebbe provocare risultati inattesi.\nSei sicuro di volerla caricare?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=La rom che stai provando a caricare è probabilmente un hack!\nAttenzione che questo potrebbe provocare risultati in attesi.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=La rom che stai provando a caricare è probabilmente un hack!\nAttenzione che questo potrebbe provocare risultati in attesi.\nSei sicuro di volerla caricare?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulatore attivo.\nVuoi fermarlo e caricare la rom selezionata?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulatore attivo.\nVuoi fermarlo e caricare una rom?
|
||||
Stop Emulation?=Fermare l' emulazione ?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulatore attivo.\nVuoi fermarlo e chiudere la rom?
|
||||
No Rom Loaded=Nessuna Rom caricata.
|
||||
There is no Rom loaded.\nDo you want to load one?=Nessuna rom caricata.\nNe vuoi caricare una ?
|
||||
No graphics plugin selected! Do you\nwant to select one?=Nessun pluggin grafico selezionato.\nNe vuoi scegliere uno?
|
||||
No audio plugin selected! Do you\nwant to select one?=Nessun pluggin audio selezionato.\nNe vuoi scegliere uno?
|
||||
No input plugin selected! Do you\nwant to select one?=Nessun pluggin di input selezionato.\nNe vuoi scegliere uno?
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=Algoritmo CPU
|
||||
Interpreter=Interpretato
|
||||
Dynamic Recompiler=Recompilato Dinamicamente
|
||||
Pure Interpreter=Puramente interpretato
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Plugin Grafica
|
||||
Audio Plugin=Plugin sonoro
|
||||
Input Plugin=Plugin controlli
|
||||
Config=Configurazione
|
||||
Test=Prova
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Cartella Rom
|
||||
Add=Aggiungi
|
||||
Remove=Rimuovi
|
||||
Remove All=Elimina tutti
|
||||
Recursively scan rom directories=Scansiona le sottocartelle
|
||||
Select Rom Directory=Scegli la cartella delle rom
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=A Proposito di mupen64Plus
|
||||
|
153
lang/pt_BR.lng
153
lang/pt_BR.lng
|
@ -1,153 +0,0 @@
|
|||
; Tradução para português do Brasil por Daniel Paganini
|
||||
[Português do Brasil]
|
||||
|
||||
Ok=Ok
|
||||
Cancel=Cancelar
|
||||
|
||||
Yes=Sim
|
||||
No=Não
|
||||
Abort=Cancelar
|
||||
Retry=Tentar Novamente
|
||||
Ignore=Ignorar
|
||||
Continue=Continuar
|
||||
|
||||
Error=Erro
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Arquivo
|
||||
_Open Rom...=_Abrir ROM...
|
||||
_Close Rom=_Fechar ROM
|
||||
_Language=_Idioma
|
||||
_Exit=_Sair
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulação
|
||||
_Start=_Iniciar
|
||||
Pause/_Continue=Pausar/_Continuar
|
||||
Sto_p=_Parar
|
||||
Save State=Guardar Estado
|
||||
Save State As=Guardar Estado Como
|
||||
Restore State=Restaurar Estado
|
||||
Load State=Carregar Estado
|
||||
Current save state=Guardar estado atual
|
||||
|
||||
; Options Menu
|
||||
_Options=_Opções
|
||||
_Configure...=_Configurar...
|
||||
_Video Settings...=Configurar _Vídeo...
|
||||
_Audio Settings...=Configurar _Áudio...
|
||||
_Input Settings...=Configurar _Entrada...
|
||||
_RSP Settings...=Configurar _RSP...
|
||||
_Full Screen=_Tela Cheia
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Ativar
|
||||
|
||||
; Help Menu
|
||||
_Help=_Ajuda
|
||||
_About...=_Sobre...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Abrir ROM
|
||||
Start Emulation=Iniciar Emulação
|
||||
Pause/Continue Emulation=Pausar/Continuar Emulação
|
||||
Stop Emulation=Parar Emulação
|
||||
Configure=Configurar
|
||||
Full Screen=Tela Cheia
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Nome
|
||||
Country=País
|
||||
Size=Tamanho
|
||||
Comments=Comentários
|
||||
File Name=Nome do arquivo
|
||||
Play Rom=Executar ROM
|
||||
Rom Properties=Propriedades da ROM
|
||||
Refresh=Atualizar
|
||||
Total Roms: %d=Total de ROMs: %d
|
||||
Scanning directory '%s'...=Buscando no diretório '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Diretórios de ROMs verificado, %d ROMs encontradas
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japão
|
||||
Germany=Alemanha
|
||||
USA=USA
|
||||
France=França
|
||||
Italy=Itália
|
||||
Japan=Japão
|
||||
Spain=Espanha
|
||||
Australia (0x%2.2X)=Austrália (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Desconhecido (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Informacão da ROM
|
||||
Calculate=Calcular
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=ROM "%s" carregada.
|
||||
Loading Rom: %d%%=Carregando ROM: %d%%
|
||||
Rom closed.=ROM fechada.
|
||||
Emulation started (PID: %d)=Emulação iniciada (PID: %d)
|
||||
Emulation paused.=Emulação pausada.
|
||||
Emulation continued.=Emulação reiniciada.
|
||||
Stopping emulation.=Parando emulação.
|
||||
Emulation stopped.=Emulação parada.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Dump incorrecto?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=A ROM que você está tentando carregar provavelmente está em um formato incorreto\nTenha em conta que isto pode levar a resultados inesperados.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=A ROM que você está tentando carregar provavelmente está em um formato incorreto\nTenha em conta que isto pode levar a resultados inesperados.\nDeseja continuar com a execução?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=A ROM que você está tentando carregar é provavelmente um hack!\nTenha em conta que isto pode levar a resultados inesperados.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=A ROM que você está tentando carregar é provavelmente um hack!\nTenha em conta que isto pode levar a resultados inesperados.\nDeseja continuar com a execução?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulação em andamento. Deseja para-la e carregar a ROM selecionada?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulação em andamento. Deseja para-la e carregar uma ROM?
|
||||
Stop Emulation?=Parar Emulação?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulação em andamento. Deseja para-la e fechar a ROM?
|
||||
No Rom Loaded=Não há nenhuna ROM carregada
|
||||
There is no Rom loaded.\nDo you want to load one?=Não há nenhuma ROM carregada.\nDesea carregar uma?
|
||||
No graphics plugin selected! Do you\nwant to select one?=Não há nenhum plugin gráfico selecionado! Deseja selecionar um?
|
||||
No audio plugin selected! Do you\nwant to select one?=Não há nenhum plugin de som selecionado! Deseja selecionar um?
|
||||
No input plugin selected! Do you\nwant to select one?=Não há nenhum plugin de entrada selecionado! Deseja selecionar um?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=Nucleo da CPU
|
||||
Interpreter=Interpretador
|
||||
Dynamic Recompiler=Recompilador Dinâmico
|
||||
Pure Interpreter=Interpretador Puro
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Plugin Gráfico
|
||||
Audio Plugin=Plugin de Áudio
|
||||
Input Plugin=Plugin de Entrada
|
||||
RSP Plugin=Plugin RSP
|
||||
Config=Configurar
|
||||
Test=Testar
|
||||
About=Sobre
|
||||
|
||||
; rombrowser tab
|
||||
ROM Browser=Navegador de ROMs
|
||||
Rom Directories=Diretórios de ROMs
|
||||
Add=Adicionar
|
||||
Remove=Remover
|
||||
Remove All=Remover Todos
|
||||
Recursively scan rom directories=Revisar diretórios de ROMs recursivamente
|
||||
Select Rom Directory=Selecionar Diretório de ROMs
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Sobre o Mupen64Plus
|
150
lang/spanish.lng
150
lang/spanish.lng
|
@ -1,150 +0,0 @@
|
|||
; spanish translation by FBCrack
|
||||
[Español]
|
||||
|
||||
Ok=Aceptar
|
||||
Cancel=Cancelar
|
||||
|
||||
Yes=Si
|
||||
No=No
|
||||
Abort=Cancelar
|
||||
Retry=Reintentar
|
||||
Ignore=Ignorar
|
||||
Continue=Continuar
|
||||
|
||||
Error=Error
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Archivo
|
||||
_Open Rom...=_Abrir ROM...
|
||||
_Close Rom=_Cerrar ROM
|
||||
_Language=_Lenguaje
|
||||
_Exit=_Salir
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulacion
|
||||
_Start=_Comenzar
|
||||
Pause/_Continue=Detener/_Continuar
|
||||
Sto_p=_Parar
|
||||
Save State=Guardar Estado
|
||||
Save State As=Guardar Estado Como
|
||||
Restore State=Restaurar Estado
|
||||
Load State=Cargar Estado
|
||||
Current save state=Guardar estado actual
|
||||
|
||||
; Options Menu
|
||||
_Options=_Opciones
|
||||
_Configure...=_Configurar...
|
||||
_Video Settings...=Configurar _Video...
|
||||
_Audio Settings...=Configurar _Audio...
|
||||
_Input Settings...=Configurar _Controladores...
|
||||
_Full Screen=_Pantalla Completa
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debugger
|
||||
_Enable=_Activar
|
||||
|
||||
; Help Menu
|
||||
_Help=_Ayuda
|
||||
_About...=_Acerca de...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Abrir ROM
|
||||
Start Emulation=Comenzar Emulación
|
||||
Pause/Continue Emulation=Detener/Continuar Emulación
|
||||
Stop Emulation=Parar Emulación
|
||||
Configure=Configurar
|
||||
Full Screen=Pantalla Completa
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Nombre
|
||||
Country=País
|
||||
Size=Tamaño
|
||||
Comments=Commentarios
|
||||
File Name=Nombre del fichero
|
||||
Play Rom=Ejecutar ROM
|
||||
Rom Properties=Propiedades de la ROM
|
||||
Refresh=Refrescar
|
||||
Total Roms: %d=Total ROMs: %d
|
||||
Scanning directory '%s'...=Buscando en directorio '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Directorios de ROMs revisados, %d ROMs encontradas
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japón
|
||||
Germany=Alemania
|
||||
USA=USA
|
||||
France=Francia
|
||||
Italy=Italia
|
||||
Japan=Japón
|
||||
Spain=Espña
|
||||
Australia (0x%2.2X)=Australia (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Desconocido (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Información de la ROM
|
||||
Calculate=Calcular
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=ROM "%s" cargada.
|
||||
Loading Rom: %d%%=Cargando ROM: %d%%
|
||||
Rom closed.=ROM cerrada.
|
||||
Emulation started (PID: %d)=Emulación comenzada (PID: %d)
|
||||
Emulation paused.=Emulación detenida.
|
||||
Emulation continued.=Emulación continuada.
|
||||
Stopping emulation.=Deteniendo emulación.
|
||||
Emulation stopped.=Emulación parada.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=¿Volcado incorrecto?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=¿La ROM que está intentando cargar es probablemente un volcado incorrecto\nTenga en cuenta que esto puede llevar a resultados inesperados.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=¿La ROM que está intentando cargar es probablemente un volcado incorrecto\nTenga en cuenta que esto puede llevar a resultados inesperados.\n¿Desea continuar con la ejecución?
|
||||
Hack?=¿Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=¿La ROM que está intentando cargar es probablemente un hack!\nTenga en cuenta que esto puede llevar a resultados inesperados.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=¿La ROM que está intentando cargar es probablemente un hack!\nTenga en cuenta que esto puede llevar a resultados inesperados.\n¿Desea continuar con la ejecución?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulación en proceso. ¿Desea pararla y cargar la ROM seleccionada?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulación en proceso. ¿Desea pararla y cargar una ROM?
|
||||
Stop Emulation?=¿Detener Emulación?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulación en proceso. ¿Desea detenerla y cerrar la ROM?
|
||||
No Rom Loaded=No hay ninguna ROM cargada
|
||||
There is no Rom loaded.\nDo you want to load one?=No hay ninguna ROM cargada.\n¿Desea cargar una?
|
||||
No graphics plugin selected! Do you\nwant to select one?=¡No hay ningún plugin gráfico seleccionado! ¿Desea seleccionar uno?
|
||||
No audio plugin selected! Do you\nwant to select one?=¡No hay ningún plugin de sonido seleccionado! ¿Desea seleccionar uno?
|
||||
No input plugin selected! Do you\nwant to select one?=¡No hay ningún plugin de entrada seleccionado! ¿Desea seleccionar uno?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=Nucleo de CPU
|
||||
Interpreter=Interprete
|
||||
Dynamic Recompiler=Recompilador Dinámico
|
||||
Pure Interpreter=Interprete Puro
|
||||
|
||||
; plugins tab
|
||||
Plugins=Plugins
|
||||
Gfx Plugin=Plugin Grafico
|
||||
Audio Plugin=Plugin de Audo
|
||||
Input Plugin=Plugin Controlador
|
||||
Config=Configurar
|
||||
Test=Probar
|
||||
About=Acerca de
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Directorios de ROMs
|
||||
Add=Añadir
|
||||
Remove=Eliminar
|
||||
Remove All=Eliminar Todos
|
||||
Recursively scan rom directories=Revisar directorios de ROMs recursivamente
|
||||
Select Rom Directory=Seleccionar Directorio de ROMs
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Acerca de Mupen64Plus
|
150
lang/swedish.lng
150
lang/swedish.lng
|
@ -1,150 +0,0 @@
|
|||
; Swedish translation by Robin Stjerndorff
|
||||
[Svenska]
|
||||
|
||||
Ok=Ok
|
||||
Cancel=Avbryt
|
||||
|
||||
Yes=Ja
|
||||
No=Nej
|
||||
Abort=Avbryt
|
||||
Retry=Försök igen
|
||||
Ignore=Ignorera
|
||||
Continue=Fortsätt
|
||||
|
||||
Error=Fel
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Main Window
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; File menu
|
||||
_File=_Arkiv
|
||||
_Open Rom...=_Öppna Rom...
|
||||
_Close Rom=_Stäng Rom
|
||||
_Language=_Språk
|
||||
_Exit=_Avsluta
|
||||
|
||||
; Emulation Menu
|
||||
_Emulation=_Emulation
|
||||
_Start=_Starta
|
||||
Pause/_Continue=Pausa/_Fortsätt
|
||||
Sto_p=_Stoppa
|
||||
Save State=Snabbspara Läge
|
||||
Save State As=Snabbspara Som
|
||||
Restore State=Snabbladda Läge
|
||||
Load State=Snabbladda Eget Läge
|
||||
Current save state=Nuvarande Sparfil
|
||||
|
||||
; Options Menu
|
||||
_Options=_Inställningar
|
||||
_Configure...=_Konfigurera...
|
||||
_Video Settings...=Konfigurera _Video...
|
||||
_Audio Settings...=Konfigurera _Ljud...
|
||||
_Input Settings...=Konfigurera _Kontroller...
|
||||
_Full Screen=_Helskärm
|
||||
|
||||
; Debugger
|
||||
_Debugger=_Debuggare
|
||||
_Enable=_Aktivera
|
||||
|
||||
; Help Menu
|
||||
_Help=_Hjälp
|
||||
_About...=_Om...
|
||||
|
||||
; Toolbar
|
||||
Open Rom=Öppna Rom
|
||||
Start Emulation=Starta Emulering
|
||||
Pause/Continue Emulation=Pause/Fortsätt Emulering
|
||||
Stop Emulation=Stoppa Emulering
|
||||
Configure=Konfigurera
|
||||
Full Screen=Helskärm
|
||||
|
||||
; Rom Browser
|
||||
Good Name=Namn
|
||||
Country=Land
|
||||
Size=Storlek
|
||||
Comments=Kommentarer
|
||||
File Name=Filnamn
|
||||
Play Rom=Spela Rom
|
||||
Rom Properties=Egenskaper
|
||||
Refresh=Uppdatera
|
||||
Total Roms: %d=Antal Rom:s: %d
|
||||
Scanning directory '%s'...=Söker igenom mapp '%s'...
|
||||
%d Rom Directories scanned, %d Roms found=%d Rom-mappar igenomsökta, %d Rom(s) hittades
|
||||
|
||||
; Countries
|
||||
Demo=Demo
|
||||
Beta=Beta
|
||||
USA/Japan=USA/Japan
|
||||
Germany=Tyskland
|
||||
USA=USA
|
||||
France=Frankrike
|
||||
Italy=Italien
|
||||
Japan=Japan
|
||||
Spain=Spanien
|
||||
Australia (0x%2.2X)=Australien (0x%2.2X)
|
||||
Europe (0x%02X)=Europa (0x%02X)
|
||||
Unknown (0x%02X)=Okänd (0x%02X)
|
||||
|
||||
; Rom Properties
|
||||
Rom Info=Rom Egenskaper
|
||||
Calculate=Räkna ut
|
||||
|
||||
; Status Bar
|
||||
Rom "%s" loaded.=Rom "%s" laddad.
|
||||
Loading Rom: %d%%=Laddar Rom: %d%%
|
||||
Rom closed.=Rom stängd.
|
||||
Emulation started (PID: %d)=Emulation startad (PID: %d)
|
||||
Emulation paused.=Emulation pausad.
|
||||
Emulation continued.=Emulation fortsatt.
|
||||
Stopping emulation.=Stoppar emulation.
|
||||
Emulation stopped.=Emulation stoppad.
|
||||
|
||||
; Message Boxes
|
||||
Bad dump?=Ogiltig avbildning?
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\n=Rom-filen du försöker ladda är antagligen en dålig avbildning!\nNotera att detta antagligen ger vissa komplikationer.\n
|
||||
The rom you are trying to load is probably a bad dump!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=Rom-filen du försöker ladda är antagligen en dålig avbildning!\nNotera att detta antagligen ger vissa komplikationer.\nVill du ändå starta den?
|
||||
Hack?=Hack?
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\n=Rom-filen du försöker ladda är antagligen hackad!\nNotera att detta antagligen ger vissa komplikationer.\n
|
||||
The rom you are trying to load is probably a hack!\nBe warned that this will probably give unexpected results.\nDo you still want to run it?=Rom-filen du försöker ladda är antagligen hackad!\nNotera att detta antagligen ger vissa komplikationer.\nVill du ändå starta den?
|
||||
Emulation is running. Do you want to\nstop it and load the selected rom?=Emulation pågår. Vill du stanna och ladda den valda rom-filen?
|
||||
Emulation is running. Do you want to\nstop it and load a rom?=Emulation pågår. Vill du stanna och ladda en rom-fil?
|
||||
Stop Emulation?=Stoppa Emulation?
|
||||
Emulation is running. Do you want to\nstop it and close the rom?=Emulation pågår. Vill du stanna och stänga rom-filen?
|
||||
No Rom Loaded=Ingen Rom Laddad
|
||||
There is no Rom loaded.\nDo you want to load one?=Ingen Rom laddad.\nVill du ladda en?
|
||||
No graphics plugin selected! Do you\nwant to select one?=Ingen insticksmodul för grafik vald! Vill du välja en?
|
||||
No audio plugin selected! Do you\nwant to select one?=Ingen insticksmodul fär ljud vald! Vill du välja en?
|
||||
No input plugin selected! Do you\nwant to select one?=Ingen insticksmodul för kontroll vald! Vill du välja en?
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Config Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
; mupen tab
|
||||
CPU Core=CPU-Kärna
|
||||
Interpreter=Interpretator
|
||||
Dynamic Recompiler=Dynamisk Omkompilerare
|
||||
Pure Interpreter=Rå Kompilerare
|
||||
|
||||
; plugins tab
|
||||
Plugins=Insticksmoduler
|
||||
Gfx Plugin=Grafik
|
||||
Audio Plugin=Ljud
|
||||
Input Plugin=Kontroller
|
||||
Config=Konfigurera
|
||||
Test=Testa
|
||||
About=Om
|
||||
|
||||
; rombrowser tab
|
||||
Rom Directories=Rom Filmappar
|
||||
Add=Lägg till
|
||||
Remove=Ta bort
|
||||
Remove All=Ta bort alla
|
||||
Recursively scan rom directories=Sök igenom mappar rekursivt
|
||||
Select Rom Directory=Välj en mapp
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; About Dialog
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
About Mupen64Plus=Om Mupen64Plus
|
|
@ -59,13 +59,6 @@
|
|||
#include "../../debugger/debugger.h"
|
||||
#endif
|
||||
|
||||
#ifdef VCR
|
||||
#include "vcrcomp_dialog.h"
|
||||
|
||||
#include "../vcr.h"
|
||||
#include "../vcr_compress.h"
|
||||
#endif
|
||||
|
||||
/** function prototypes **/
|
||||
static void callback_startEmulation(GtkWidget *widget, gpointer data);
|
||||
static void callback_stopEmulation(GtkWidget *widget, gpointer data);
|
||||
|
@ -99,9 +92,6 @@ void gui_init(int *argc, char ***argv)
|
|||
|
||||
create_mainWindow();
|
||||
create_configDialog();
|
||||
#ifdef VCR_SUPPORT
|
||||
create_vcrCompDialog();
|
||||
#endif
|
||||
create_aboutDialog();
|
||||
}
|
||||
|
||||
|
@ -644,213 +634,6 @@ static void callback_fullScreen( GtkWidget *widget, gpointer data )
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/** VCR **/
|
||||
#ifdef VCR_SUPPORT
|
||||
static void callback_vcrStartRecord( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
GtkWidget *file_chooser;
|
||||
|
||||
// get save file from user
|
||||
file_chooser = gtk_file_chooser_dialog_new(tr("Save Recording"),
|
||||
GTK_WINDOW(g_MainWindow.window),
|
||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
|
||||
if(gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
|
||||
char full_filename[PATH_MAX];
|
||||
|
||||
strncpy(full_filename, filename, PATH_MAX);
|
||||
|
||||
// if user didn't provide suffix, append .rec
|
||||
if(!strstr(filename, "."))
|
||||
strncat(full_filename, ".rec", PATH_MAX - strlen(full_filename));
|
||||
|
||||
if (VCR_startRecord( full_filename ) < 0)
|
||||
error_message(tr("Couldn't start recording."));
|
||||
|
||||
g_free(filename);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (file_chooser);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void callback_vcrStopRecord( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
if (VCR_stopRecord() < 0)
|
||||
error_message(tr("Couldn't stop recording."));
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
static void callback_vcrStartPlayback( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
GtkWidget *file_chooser;
|
||||
GtkFileFilter *file_filter;
|
||||
|
||||
// get recording file from user to playback
|
||||
file_chooser = gtk_file_chooser_dialog_new(tr("Load Recording"),
|
||||
GTK_WINDOW(g_MainWindow.window),
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
|
||||
// add filter for recording file types
|
||||
file_filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(file_filter, "Recording file (*.rec)");
|
||||
gtk_file_filter_add_pattern(file_filter, "*.[rR][eE][cC]");
|
||||
|
||||
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser),
|
||||
file_filter);
|
||||
|
||||
// add filter for "all files"
|
||||
file_filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(file_filter, "All files (*.*)");
|
||||
gtk_file_filter_add_pattern(file_filter, "*");
|
||||
|
||||
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser),
|
||||
file_filter);
|
||||
|
||||
if(gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
|
||||
|
||||
if (VCR_startPlayback( filename ) < 0)
|
||||
error_message(tr("Couldn't start playback."));
|
||||
|
||||
g_free(filename);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (file_chooser);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void callback_vcrStopPlayback( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
if (VCR_stopPlayback() < 0)
|
||||
error_message(tr("Couldn't stop playback."));
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void callback_vcrStartCapture( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
GtkWidget *file_chooser;
|
||||
GtkFileFilter *file_filter;
|
||||
|
||||
// load recording file to capture
|
||||
file_chooser = gtk_file_chooser_dialog_new(tr("Load Recording"),
|
||||
GTK_WINDOW(g_MainWindow.window),
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
|
||||
// add filter for recording file types
|
||||
file_filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(file_filter, "Recording file (*.rec)");
|
||||
gtk_file_filter_add_pattern(file_filter, "*.[rR][eE][cC]");
|
||||
|
||||
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser),
|
||||
file_filter);
|
||||
|
||||
// add filter for "all files"
|
||||
file_filter = gtk_file_filter_new();
|
||||
gtk_file_filter_set_name(file_filter, "All files (*.*)");
|
||||
gtk_file_filter_add_pattern(file_filter, "*");
|
||||
|
||||
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_chooser),
|
||||
file_filter);
|
||||
|
||||
if(gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
gchar *rec_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
|
||||
|
||||
gtk_widget_destroy(file_chooser);
|
||||
|
||||
// get avi filename from user to save recording to.
|
||||
file_chooser = gtk_file_chooser_dialog_new(tr("Save as..."),
|
||||
GTK_WINDOW(g_MainWindow.window),
|
||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
|
||||
if(gtk_dialog_run(GTK_DIALOG(file_chooser)) == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
gchar *avi_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));
|
||||
|
||||
if (VCR_startCapture( rec_filename, avi_filename ) < 0)
|
||||
error_message(tr("Couldn't start capturing."));
|
||||
|
||||
g_free(avi_filename);
|
||||
}
|
||||
|
||||
g_free(rec_filename);
|
||||
}
|
||||
|
||||
gtk_widget_destroy (file_chooser);
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void callback_vcrStopCapture( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if( g_EmulationThread )
|
||||
{
|
||||
if (VCR_stopCapture() < 0)
|
||||
error_message(tr("Couldn't stop capturing."));
|
||||
}
|
||||
else
|
||||
{
|
||||
error_message(tr("Emulation is not running."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void callback_vcrSetup( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
gtk_widget_show_all( g_VcrCompDialog.dialog );
|
||||
}
|
||||
#endif // VCR_SUPPORT
|
||||
|
||||
static void callback_toggle_toolbar( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if(GTK_WIDGET_VISIBLE(g_MainWindow.toolBar))
|
||||
|
@ -999,10 +782,6 @@ static int create_menuBar( void )
|
|||
GtkWidget *emulationMenuItem;
|
||||
GtkWidget *optionsMenu;
|
||||
GtkWidget *optionsMenuItem;
|
||||
#ifdef VCR_SUPPORT
|
||||
GtkWidget *vcrMenu;
|
||||
GtkWidget *vcrMenuItem;
|
||||
#endif
|
||||
GtkWidget *viewMenu;
|
||||
GtkWidget *viewMenuItem;
|
||||
GtkWidget *viewToolbar;
|
||||
|
@ -1047,19 +826,6 @@ static int create_menuBar( void )
|
|||
GtkWidget *optionsCheatsItem;
|
||||
GtkWidget *optionsFullScreenItem;
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
GtkWidget *vcrStartRecordItem;
|
||||
GtkWidget *vcrStopRecordItem;
|
||||
GtkWidget *vcrSeparator1;
|
||||
GtkWidget *vcrStartPlaybackItem;
|
||||
GtkWidget *vcrStopPlaybackItem;
|
||||
GtkWidget *vcrSeparator2;
|
||||
GtkWidget *vcrStartCaptureItem;
|
||||
GtkWidget *vcrStopCaptureItem;
|
||||
GtkWidget *vcrSeparator3;
|
||||
GtkWidget *vcrSetupItem;
|
||||
#endif
|
||||
|
||||
GtkWidget *helpAboutItem;
|
||||
|
||||
GSList *group = NULL;
|
||||
|
@ -1249,42 +1015,6 @@ static int create_menuBar( void )
|
|||
g_signal_connect(optionsCheatsItem, "activate", G_CALLBACK(cb_cheatDialog), NULL );
|
||||
g_signal_connect(optionsFullScreenItem, "activate", G_CALLBACK(callback_fullScreen), NULL );
|
||||
|
||||
// vcr menu
|
||||
#ifdef VCR_SUPPORT
|
||||
vcrMenu = gtk_menu_new();
|
||||
vcrMenuItem = gtk_menu_item_new_with_mnemonic(tr("_VCR"));
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(vcrMenuItem), vcrMenu );
|
||||
vcrStartRecordItem = gtk_menu_item_new_with_mnemonic(tr("Start _Record..."));
|
||||
vcrStopRecordItem = gtk_menu_item_new_with_mnemonic(tr("Stop Record"));
|
||||
vcrSeparator1 = gtk_menu_item_new();
|
||||
vcrStartPlaybackItem = gtk_menu_item_new_with_mnemonic(tr("Start _Playback..."));
|
||||
vcrStopPlaybackItem = gtk_menu_item_new_with_mnemonic(tr("Stop Playback"));
|
||||
vcrSeparator2 = gtk_menu_item_new();
|
||||
vcrStartCaptureItem = gtk_menu_item_new_with_mnemonic(tr("Start _Capture..."));
|
||||
vcrStopCaptureItem = gtk_menu_item_new_with_mnemonic(tr("Stop Capture"));
|
||||
vcrSeparator3 = gtk_menu_item_new();
|
||||
vcrSetupItem = gtk_menu_item_new_with_mnemonic(tr("Configure Codec..."));
|
||||
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStartRecordItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStopRecordItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrSeparator1 );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStartPlaybackItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStopPlaybackItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrSeparator2 );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStartCaptureItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrStopCaptureItem );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrSeparator3 );
|
||||
gtk_menu_append( GTK_MENU(vcrMenu), vcrSetupItem );
|
||||
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStartRecordItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStartRecord), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStopRecordItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStopRecord), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStartPlaybackItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStartPlayback), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStopPlaybackItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStopPlayback), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStartCaptureItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStartCapture), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrStopCaptureItem), "activate", GTK_SIGNAL_FUNC(callback_vcrStopCapture), (gpointer)NULL );
|
||||
gtk_signal_connect_object( GTK_OBJECT(vcrSetupItem), "activate", GTK_SIGNAL_FUNC(callback_vcrSetup), (gpointer)NULL );
|
||||
#endif // VCR_SUPPORT
|
||||
|
||||
viewMenu = gtk_menu_new();
|
||||
viewMenuItem = gtk_menu_item_new_with_mnemonic(tr("_View"));
|
||||
gtk_menu_item_set_submenu( GTK_MENU_ITEM(viewMenuItem), viewMenu );
|
||||
|
@ -1368,9 +1098,6 @@ static int create_menuBar( void )
|
|||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), fileMenuItem );
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), emulationMenuItem );
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), optionsMenuItem );
|
||||
#ifdef VCR_SUPPORT
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), vcrMenuItem );
|
||||
#endif
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), viewMenuItem );
|
||||
#ifdef DBG
|
||||
gtk_menu_bar_append( GTK_MENU_BAR(g_MainWindow.menuBar), debuggerMenuItem );
|
||||
|
|
|
@ -1,670 +0,0 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - vcrcomp_dialog.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Blight *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* vcrcomp_dialog.c - Handles VCR mode GUI elements */
|
||||
|
||||
#include "vcrcomp_dialog.h"
|
||||
|
||||
#include "main_gtk.h"
|
||||
#include "../config.h"
|
||||
#include "../translate.h"
|
||||
|
||||
#include "../vcr_compress.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
enum EditMode
|
||||
{
|
||||
VideoCodec,
|
||||
AudioCodec
|
||||
};
|
||||
|
||||
/** globals **/
|
||||
SVcrCompDialog g_VcrCompDialog;
|
||||
static int m_EditMode = VideoCodec;
|
||||
|
||||
static int
|
||||
selectedVideoCodecIndex()
|
||||
{
|
||||
int i;
|
||||
const char *selectedCodec = gtk_entry_get_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.videoCodecCombo)->entry) );
|
||||
|
||||
for (i = 0; i < VCRComp_numVideoCodecs(); i++)
|
||||
{
|
||||
if (!strcmp( selectedCodec, VCRComp_videoCodecName( i ) ))
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
selectedVideoAttribIndex()
|
||||
{
|
||||
int i, codec = selectedVideoCodecIndex();
|
||||
const char *selectedAttrib = gtk_entry_get_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.videoAttribCombo)->entry) );
|
||||
|
||||
for (i = 0; i < VCRComp_numVideoCodecAttribs( codec ); i++)
|
||||
{
|
||||
if (!strcmp( selectedAttrib, VCRComp_videoCodecAttribName( codec, i ) ))
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int
|
||||
selectedAudioCodecIndex()
|
||||
{
|
||||
int i;
|
||||
const char *selectedCodec = gtk_entry_get_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.audioCodecCombo)->entry) );
|
||||
|
||||
for (i = 0; i < VCRComp_numAudioCodecs(); i++)
|
||||
{
|
||||
if (!strcmp( selectedCodec, VCRComp_audioCodecName( i ) ))
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
selectedAudioAttribIndex()
|
||||
{
|
||||
int i, codec = selectedAudioCodecIndex();
|
||||
const char *selectedAttrib = gtk_entry_get_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.audioAttribCombo)->entry) );
|
||||
|
||||
for (i = 0; i < VCRComp_numAudioCodecAttribs( codec ); i++)
|
||||
{
|
||||
if (!strcmp( selectedAttrib, VCRComp_audioCodecAttribName( codec, i ) ))
|
||||
return i;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
* change dialogs
|
||||
*/
|
||||
struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *entry;
|
||||
} m_IntegerDialog;
|
||||
|
||||
struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *entry;
|
||||
} m_StringDialog;
|
||||
|
||||
struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *combo;
|
||||
} m_SelectDialog;
|
||||
|
||||
|
||||
static gint delete_question_event(GtkWidget *widget, GdkEvent *event, gpointer data);
|
||||
static void callback_videoAttribChanged( GtkWidget *widget, gpointer data );
|
||||
static void callback_audioAttribChanged( GtkWidget *widget, gpointer data );
|
||||
|
||||
static void
|
||||
callback_integerChangeOkClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
const char *val;
|
||||
int ci, ai;
|
||||
|
||||
val = gtk_entry_get_text( GTK_ENTRY(m_IntegerDialog.entry) );
|
||||
|
||||
if (m_EditMode == VideoCodec)
|
||||
{
|
||||
ci = selectedVideoCodecIndex();
|
||||
ai = selectedVideoAttribIndex();
|
||||
VCRComp_videoCodecAttribSetValue( ci, ai, val );
|
||||
callback_videoAttribChanged( NULL, NULL );
|
||||
}
|
||||
else if (m_EditMode == AudioCodec)
|
||||
{
|
||||
ci = selectedAudioCodecIndex();
|
||||
ai = selectedAudioAttribIndex();
|
||||
VCRComp_audioCodecAttribSetValue( ci, ai, val );
|
||||
callback_audioAttribChanged( NULL, NULL );
|
||||
}
|
||||
|
||||
gtk_widget_hide( m_IntegerDialog.dialog );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_stringChangeOkClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
const char *val;
|
||||
int ci, ai;
|
||||
|
||||
val = gtk_entry_get_text( GTK_ENTRY(m_StringDialog.entry) );
|
||||
|
||||
if (m_EditMode == VideoCodec)
|
||||
{
|
||||
ci = selectedVideoCodecIndex();
|
||||
ai = selectedVideoAttribIndex();
|
||||
VCRComp_videoCodecAttribSetValue( ci, ai, val );
|
||||
callback_videoAttribChanged( NULL, NULL );
|
||||
}
|
||||
else if (m_EditMode == AudioCodec)
|
||||
{
|
||||
ci = selectedAudioCodecIndex();
|
||||
ai = selectedAudioAttribIndex();
|
||||
VCRComp_audioCodecAttribSetValue( ci, ai, val );
|
||||
callback_audioAttribChanged( NULL, NULL );
|
||||
}
|
||||
|
||||
gtk_widget_hide( m_StringDialog.dialog );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_selectChangeOkClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
const char *val;
|
||||
int ci, ai;
|
||||
|
||||
val = gtk_entry_get_text( GTK_ENTRY(GTK_COMBO(m_SelectDialog.combo)->entry) );
|
||||
if (m_EditMode == VideoCodec)
|
||||
{
|
||||
ci = selectedVideoCodecIndex();
|
||||
ai = selectedVideoAttribIndex();
|
||||
VCRComp_videoCodecAttribSetValue( ci, ai, val );
|
||||
callback_videoAttribChanged( NULL, NULL );
|
||||
}
|
||||
else if (m_EditMode == AudioCodec)
|
||||
{
|
||||
ci = selectedAudioCodecIndex();
|
||||
ai = selectedAudioAttribIndex();
|
||||
VCRComp_audioCodecAttribSetValue( ci, ai, val );
|
||||
callback_audioAttribChanged( NULL, NULL );
|
||||
}
|
||||
|
||||
gtk_widget_hide( m_SelectDialog.dialog );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_changeDialogHidden( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
gtk_grab_remove( widget );
|
||||
}
|
||||
|
||||
static void
|
||||
create_changeDialogs()
|
||||
{
|
||||
GtkWidget *button;
|
||||
|
||||
// integer dialog
|
||||
m_IntegerDialog.dialog = gtk_dialog_new();
|
||||
gtk_container_set_border_width( GTK_CONTAINER(m_IntegerDialog.dialog), 10 );
|
||||
gtk_window_set_title( GTK_WINDOW(m_IntegerDialog.dialog), tr("Change") );
|
||||
gtk_signal_connect(GTK_OBJECT(m_IntegerDialog.dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC(delete_question_event), (gpointer)NULL );
|
||||
gtk_signal_connect(GTK_OBJECT(m_IntegerDialog.dialog), "hide",
|
||||
GTK_SIGNAL_FUNC(callback_changeDialogHidden), (gpointer)NULL );
|
||||
|
||||
m_IntegerDialog.entry = gtk_entry_new();
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_IntegerDialog.dialog)->vbox), m_IntegerDialog.entry, TRUE, TRUE, 0 );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_IntegerDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect_object( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_widget_hide), GTK_OBJECT(m_IntegerDialog.dialog) );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_OK);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_IntegerDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_integerChangeOkClicked), (gpointer)NULL );
|
||||
|
||||
|
||||
// string dialog
|
||||
m_StringDialog.dialog = gtk_dialog_new();
|
||||
gtk_container_set_border_width( GTK_CONTAINER(m_StringDialog.dialog), 10 );
|
||||
gtk_window_set_title( GTK_WINDOW(m_StringDialog.dialog), tr("Change") );
|
||||
gtk_signal_connect(GTK_OBJECT(m_StringDialog.dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC(delete_question_event), (gpointer)NULL );
|
||||
gtk_signal_connect(GTK_OBJECT(m_StringDialog.dialog), "hide",
|
||||
GTK_SIGNAL_FUNC(callback_changeDialogHidden), (gpointer)NULL );
|
||||
|
||||
m_StringDialog.entry = gtk_entry_new();
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_StringDialog.dialog)->vbox), m_StringDialog.entry, TRUE, TRUE, 0 );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_StringDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect_object( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_widget_hide), GTK_OBJECT(m_StringDialog.dialog) );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_OK);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_StringDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_stringChangeOkClicked), (gpointer)NULL );
|
||||
|
||||
|
||||
// select dialog
|
||||
m_SelectDialog.dialog = gtk_dialog_new();
|
||||
gtk_container_set_border_width( GTK_CONTAINER(m_SelectDialog.dialog), 10 );
|
||||
gtk_window_set_title( GTK_WINDOW(m_SelectDialog.dialog), tr("Change") );
|
||||
gtk_signal_connect(GTK_OBJECT(m_SelectDialog.dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC(delete_question_event), (gpointer)NULL );
|
||||
gtk_signal_connect(GTK_OBJECT(m_SelectDialog.dialog), "hide",
|
||||
GTK_SIGNAL_FUNC(callback_changeDialogHidden), (gpointer)NULL );
|
||||
|
||||
m_SelectDialog.combo = gtk_combo_new();
|
||||
gtk_combo_set_value_in_list( GTK_COMBO(m_SelectDialog.combo), TRUE, FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_SelectDialog.dialog)->vbox), m_SelectDialog.combo, TRUE, TRUE, 0 );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_SelectDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect_object( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(gtk_widget_hide), GTK_OBJECT(m_SelectDialog.dialog) );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_OK);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(m_SelectDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_selectChangeOkClicked), (gpointer)NULL );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** callbacks
|
||||
**/
|
||||
|
||||
static void
|
||||
callback_videoAttribChanged( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int ci, ai;
|
||||
|
||||
ci = selectedVideoCodecIndex();
|
||||
ai = selectedVideoAttribIndex();
|
||||
|
||||
gtk_entry_set_text( GTK_ENTRY(g_VcrCompDialog.videoAttribEntry),
|
||||
VCRComp_videoCodecAttribValue( ci, ai ) );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_videoCodecChanged( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int codec = selectedVideoCodecIndex();
|
||||
int i;
|
||||
|
||||
if (g_VcrCompDialog.videoAttribGList != 0)
|
||||
{
|
||||
g_list_free( g_VcrCompDialog.videoAttribGList );
|
||||
g_VcrCompDialog.videoAttribGList = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < VCRComp_numVideoCodecAttribs( codec ); i++)
|
||||
g_VcrCompDialog.videoAttribGList = g_list_append( g_VcrCompDialog.videoAttribGList,
|
||||
(gchar*)VCRComp_videoCodecAttribName( codec, i ) );
|
||||
|
||||
if (g_VcrCompDialog.videoAttribGList == 0)
|
||||
{
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribCombo, FALSE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribEntry, FALSE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribChangeButton, FALSE );
|
||||
gtk_entry_set_text( GTK_ENTRY(g_VcrCompDialog.videoAttribEntry), "" );
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribCombo, TRUE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribEntry, TRUE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoAttribChangeButton, TRUE );
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(g_VcrCompDialog.videoAttribCombo), g_VcrCompDialog.videoAttribGList );
|
||||
callback_videoAttribChanged( NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
callback_videoAttribChangeClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int ci, ai, i;
|
||||
GList *list = 0;
|
||||
char buf[200];
|
||||
|
||||
ci = selectedVideoCodecIndex();
|
||||
ai = selectedVideoAttribIndex();
|
||||
sprintf( buf, tr("Change %s"), VCRComp_videoCodecAttribName( ci, ai ) );
|
||||
|
||||
m_EditMode = VideoCodec;
|
||||
switch (VCRComp_videoCodecAttribKind( ci, ai ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
gtk_window_set_title( GTK_WINDOW(m_IntegerDialog.dialog), buf );
|
||||
gtk_entry_set_text( GTK_ENTRY(m_IntegerDialog.entry),
|
||||
VCRComp_videoCodecAttribValue( ci, ai ) );
|
||||
gtk_widget_show_all( m_IntegerDialog.dialog );
|
||||
gtk_grab_add( m_IntegerDialog.dialog );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
gtk_window_set_title( GTK_WINDOW(m_StringDialog.dialog), buf );
|
||||
gtk_entry_set_text( GTK_ENTRY(m_StringDialog.entry),
|
||||
VCRComp_videoCodecAttribValue( ci, ai ) );
|
||||
gtk_widget_show_all( m_StringDialog.dialog );
|
||||
gtk_grab_add( m_StringDialog.dialog );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
gtk_window_set_title( GTK_WINDOW(m_SelectDialog.dialog), buf );
|
||||
for (i = 0; i < VCRComp_numVideoCodecAttribOptions( ci, ai ); i++)
|
||||
list = g_list_append( list, (gchar*)VCRComp_videoCodecAttribOption( ci, ai, i ) );
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(m_SelectDialog.combo), list );
|
||||
gtk_widget_show_all( m_SelectDialog.dialog );
|
||||
gtk_grab_add( m_SelectDialog.dialog );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
callback_audioAttribChanged( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int ci, ai;
|
||||
|
||||
ci = selectedAudioCodecIndex();
|
||||
ai = selectedAudioAttribIndex();
|
||||
|
||||
gtk_entry_set_text( GTK_ENTRY(g_VcrCompDialog.audioAttribEntry),
|
||||
VCRComp_audioCodecAttribValue( ci, ai ) );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_audioCodecChanged( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int codec = selectedAudioCodecIndex();
|
||||
int i;
|
||||
|
||||
if (g_VcrCompDialog.audioAttribGList != 0)
|
||||
{
|
||||
g_list_free( g_VcrCompDialog.audioAttribGList );
|
||||
g_VcrCompDialog.audioAttribGList = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < VCRComp_numAudioCodecAttribs( codec ); i++)
|
||||
g_VcrCompDialog.audioAttribGList = g_list_append( g_VcrCompDialog.audioAttribGList,
|
||||
(gchar*)VCRComp_audioCodecAttribName( codec, i ) );
|
||||
|
||||
if (g_VcrCompDialog.audioAttribGList == 0)
|
||||
{
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribCombo, FALSE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribEntry, FALSE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribChangeButton, FALSE );
|
||||
gtk_entry_set_text( GTK_ENTRY(g_VcrCompDialog.audioAttribEntry), "" );
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribCombo, TRUE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribEntry, TRUE );
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioAttribChangeButton, TRUE );
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(g_VcrCompDialog.audioAttribCombo), g_VcrCompDialog.audioAttribGList );
|
||||
callback_audioAttribChanged( NULL, NULL );
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
callback_audioAttribChangeClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int ci, ai, i;
|
||||
GList *list = 0;
|
||||
char buf[200];
|
||||
|
||||
ci = selectedAudioCodecIndex();
|
||||
ai = selectedAudioAttribIndex();
|
||||
sprintf( buf, tr("Change %s"), VCRComp_audioCodecAttribName( ci, ai ) );
|
||||
|
||||
m_EditMode = AudioCodec;
|
||||
switch (VCRComp_audioCodecAttribKind( ci, ai ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
gtk_window_set_title( GTK_WINDOW(m_IntegerDialog.dialog), buf );
|
||||
gtk_entry_set_text( GTK_ENTRY(m_IntegerDialog.entry),
|
||||
VCRComp_audioCodecAttribValue( ci, ai ) );
|
||||
gtk_widget_show_all( m_IntegerDialog.dialog );
|
||||
gtk_grab_add( m_IntegerDialog.dialog );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
gtk_window_set_title( GTK_WINDOW(m_StringDialog.dialog), buf );
|
||||
gtk_entry_set_text( GTK_ENTRY(m_StringDialog.entry),
|
||||
VCRComp_audioCodecAttribValue( ci, ai ) );
|
||||
gtk_widget_show_all( m_StringDialog.dialog );
|
||||
gtk_grab_add( m_StringDialog.dialog );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
gtk_window_set_title( GTK_WINDOW(m_SelectDialog.dialog), buf );
|
||||
for (i = 0; i < VCRComp_numAudioCodecAttribOptions( ci, ai ); i++)
|
||||
list = g_list_append( list, (gchar*)VCRComp_audioCodecAttribOption( ci, ai, i ) );
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(m_SelectDialog.combo), list );
|
||||
gtk_widget_show_all( m_SelectDialog.dialog );
|
||||
gtk_grab_add( m_SelectDialog.dialog );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// ok/cancel button
|
||||
static void
|
||||
callback_okClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
int vci, aci;
|
||||
|
||||
vci = selectedVideoCodecIndex();
|
||||
aci = selectedAudioCodecIndex();
|
||||
VCRComp_selectVideoCodec( vci );
|
||||
VCRComp_selectAudioCodec( aci );
|
||||
|
||||
config_put_string( "VCR Video Codec", VCRComp_videoCodecName( vci ) );
|
||||
config_put_string( "VCR Audio Codec", VCRComp_audioCodecName( aci ) );
|
||||
|
||||
// hide dialog
|
||||
gtk_widget_hide( g_VcrCompDialog.dialog );
|
||||
}
|
||||
|
||||
static void
|
||||
callback_cancelClicked( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
// hide dialog
|
||||
gtk_widget_hide( g_VcrCompDialog.dialog );
|
||||
}
|
||||
|
||||
// when the window is shown
|
||||
static void
|
||||
callback_dialogShow( GtkWidget *widget, gpointer data )
|
||||
{
|
||||
if (g_VcrCompDialog.videoCodecGList)
|
||||
gtk_entry_set_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.videoCodecCombo)->entry),
|
||||
config_get_string( "VCR Video Codec", "XviD" ) );
|
||||
if (g_VcrCompDialog.audioCodecGList)
|
||||
gtk_entry_set_text( GTK_ENTRY(GTK_COMBO(g_VcrCompDialog.audioCodecCombo)->entry),
|
||||
config_get_string( "VCR Audio Codec", VCRComp_audioCodecName( 0 ) ) );
|
||||
}
|
||||
|
||||
// hide on delete
|
||||
static gint
|
||||
delete_question_event(GtkWidget *widget, GdkEvent *event, gpointer data)
|
||||
{
|
||||
gtk_widget_hide( widget );
|
||||
|
||||
return TRUE; // undeleteable
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
** create dialog
|
||||
**/
|
||||
int
|
||||
create_vcrCompDialog( void )
|
||||
{
|
||||
int i;
|
||||
GtkWidget *button;
|
||||
GtkWidget *label;
|
||||
GtkWidget *attribFrame, *attribVbox;
|
||||
GtkWidget *hbox;
|
||||
|
||||
g_VcrCompDialog.videoAttribGList = 0;
|
||||
g_VcrCompDialog.videoCodecGList = 0;
|
||||
for (i = 0; i < VCRComp_numVideoCodecs(); i++)
|
||||
g_VcrCompDialog.videoCodecGList = g_list_append( g_VcrCompDialog.videoCodecGList,
|
||||
(gchar*)VCRComp_videoCodecName( i ) );
|
||||
g_VcrCompDialog.audioAttribGList = 0;
|
||||
g_VcrCompDialog.audioCodecGList = 0;
|
||||
for (i = 0; i < VCRComp_numAudioCodecs(); i++)
|
||||
g_VcrCompDialog.audioCodecGList = g_list_append( g_VcrCompDialog.audioCodecGList,
|
||||
(gchar*)VCRComp_audioCodecName( i ) );
|
||||
|
||||
// create window
|
||||
g_VcrCompDialog.dialog = gtk_dialog_new();
|
||||
gtk_container_set_border_width( GTK_CONTAINER(g_VcrCompDialog.dialog), 10 );
|
||||
gtk_window_set_title( GTK_WINDOW(g_VcrCompDialog.dialog), tr("Configure VCR") );
|
||||
gtk_signal_connect( GTK_OBJECT(g_VcrCompDialog.dialog), "show",
|
||||
GTK_SIGNAL_FUNC(callback_dialogShow), (gpointer)NULL );
|
||||
gtk_signal_connect(GTK_OBJECT(g_VcrCompDialog.dialog), "delete_event",
|
||||
GTK_SIGNAL_FUNC(delete_question_event), (gpointer)NULL );
|
||||
|
||||
// create ok/cancel button
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(g_VcrCompDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_cancelClicked), (gpointer)NULL );
|
||||
|
||||
button = gtk_button_new_from_stock(GTK_STOCK_OK);
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(g_VcrCompDialog.dialog)->action_area), button, TRUE, TRUE, 0 );
|
||||
gtk_signal_connect( GTK_OBJECT(button), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_okClicked), (gpointer)NULL );
|
||||
|
||||
// create notebook
|
||||
g_VcrCompDialog.notebook = gtk_notebook_new();
|
||||
gtk_notebook_set_tab_pos( GTK_NOTEBOOK(g_VcrCompDialog.notebook), GTK_POS_TOP );
|
||||
gtk_box_pack_start( GTK_BOX(GTK_DIALOG(g_VcrCompDialog.dialog)->vbox), g_VcrCompDialog.notebook, TRUE, TRUE, 0 );
|
||||
|
||||
// create video page
|
||||
label = gtk_label_new( tr("Video") );
|
||||
g_VcrCompDialog.videoPage = gtk_vbox_new( FALSE, 5 );
|
||||
gtk_container_set_border_width( GTK_CONTAINER(g_VcrCompDialog.videoPage), 10 );
|
||||
gtk_notebook_append_page( GTK_NOTEBOOK(g_VcrCompDialog.notebook), g_VcrCompDialog.videoPage, label );
|
||||
|
||||
label = gtk_label_new( tr("Select codec:") );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.videoPage), label, FALSE, FALSE, 0 );
|
||||
|
||||
g_VcrCompDialog.videoCodecCombo = gtk_combo_new();
|
||||
if (g_VcrCompDialog.videoCodecGList)
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(g_VcrCompDialog.videoCodecCombo), g_VcrCompDialog.videoCodecGList );
|
||||
else
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.videoCodecCombo, FALSE );
|
||||
gtk_combo_set_value_in_list( GTK_COMBO(g_VcrCompDialog.videoCodecCombo), TRUE, FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.videoPage), g_VcrCompDialog.videoCodecCombo, FALSE, FALSE, 0 );
|
||||
|
||||
attribFrame = gtk_frame_new( tr("Codec attributes:") );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.videoPage), attribFrame, FALSE, FALSE, 0 );
|
||||
attribVbox = gtk_vbox_new( FALSE, 5 );
|
||||
gtk_container_add( GTK_CONTAINER(attribFrame), attribVbox );
|
||||
|
||||
g_VcrCompDialog.videoAttribCombo = gtk_combo_new();
|
||||
gtk_combo_set_value_in_list( GTK_COMBO(g_VcrCompDialog.videoAttribCombo), TRUE, FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), g_VcrCompDialog.videoAttribCombo, FALSE, FALSE, 0 );
|
||||
|
||||
hbox = gtk_hbox_new( FALSE, 5 );
|
||||
label = gtk_label_new( tr("Current value:") );
|
||||
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
|
||||
g_VcrCompDialog.videoAttribEntry = gtk_entry_new();
|
||||
gtk_entry_set_editable( GTK_ENTRY(g_VcrCompDialog.videoAttribEntry), FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(hbox), g_VcrCompDialog.videoAttribEntry, FALSE, FALSE, 0 );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), hbox, FALSE, FALSE, 0 );
|
||||
|
||||
g_VcrCompDialog.videoAttribChangeButton = gtk_button_new_with_label( tr("Change") );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), g_VcrCompDialog.videoAttribChangeButton, TRUE, TRUE, 0 );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_VcrCompDialog.videoCodecCombo)->entry), "changed",
|
||||
GTK_SIGNAL_FUNC(callback_videoCodecChanged), (gpointer)NULL );
|
||||
gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_VcrCompDialog.videoAttribCombo)->entry), "changed",
|
||||
GTK_SIGNAL_FUNC(callback_videoAttribChanged), (gpointer)NULL );
|
||||
gtk_signal_connect( GTK_OBJECT(g_VcrCompDialog.videoAttribChangeButton), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_videoAttribChangeClicked), (gpointer)NULL );
|
||||
|
||||
callback_videoCodecChanged( NULL, NULL );
|
||||
|
||||
|
||||
// create audio page
|
||||
label = gtk_label_new( tr("Audio") );
|
||||
g_VcrCompDialog.audioPage = gtk_vbox_new( FALSE, 5 );
|
||||
gtk_container_set_border_width( GTK_CONTAINER(g_VcrCompDialog.audioPage), 10 );
|
||||
gtk_notebook_append_page( GTK_NOTEBOOK(g_VcrCompDialog.notebook), g_VcrCompDialog.audioPage, label );
|
||||
|
||||
label = gtk_label_new( tr("Select codec:") );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.audioPage), label, FALSE, FALSE, 0 );
|
||||
|
||||
g_VcrCompDialog.audioCodecCombo = gtk_combo_new();
|
||||
if (g_VcrCompDialog.audioCodecGList)
|
||||
gtk_combo_set_popdown_strings( GTK_COMBO(g_VcrCompDialog.audioCodecCombo), g_VcrCompDialog.audioCodecGList );
|
||||
else
|
||||
gtk_widget_set_sensitive( g_VcrCompDialog.audioCodecCombo, FALSE );
|
||||
gtk_combo_set_value_in_list( GTK_COMBO(g_VcrCompDialog.audioCodecCombo), TRUE, FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.audioPage), g_VcrCompDialog.audioCodecCombo, FALSE, FALSE, 0 );
|
||||
|
||||
attribFrame = gtk_frame_new( tr("Codec attributes:") );
|
||||
gtk_box_pack_start( GTK_BOX(g_VcrCompDialog.audioPage), attribFrame, FALSE, FALSE, 0 );
|
||||
attribVbox = gtk_vbox_new( FALSE, 5 );
|
||||
gtk_container_add( GTK_CONTAINER(attribFrame), attribVbox );
|
||||
|
||||
g_VcrCompDialog.audioAttribCombo = gtk_combo_new();
|
||||
gtk_combo_set_value_in_list( GTK_COMBO(g_VcrCompDialog.audioAttribCombo), TRUE, FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), g_VcrCompDialog.audioAttribCombo, FALSE, FALSE, 0 );
|
||||
|
||||
hbox = gtk_hbox_new( FALSE, 5 );
|
||||
label = gtk_label_new( tr("Current value:") );
|
||||
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
|
||||
g_VcrCompDialog.audioAttribEntry = gtk_entry_new();
|
||||
gtk_entry_set_editable( GTK_ENTRY(g_VcrCompDialog.audioAttribEntry), FALSE );
|
||||
gtk_box_pack_start( GTK_BOX(hbox), g_VcrCompDialog.audioAttribEntry, FALSE, FALSE, 0 );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), hbox, FALSE, FALSE, 0 );
|
||||
|
||||
g_VcrCompDialog.audioAttribChangeButton = gtk_button_new_with_label( tr("Change") );
|
||||
gtk_box_pack_start( GTK_BOX(attribVbox), g_VcrCompDialog.audioAttribChangeButton, TRUE, TRUE, 0 );
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_VcrCompDialog.audioCodecCombo)->entry), "changed",
|
||||
GTK_SIGNAL_FUNC(callback_audioCodecChanged), (gpointer)NULL );
|
||||
gtk_signal_connect( GTK_OBJECT(GTK_COMBO(g_VcrCompDialog.audioAttribCombo)->entry), "changed",
|
||||
GTK_SIGNAL_FUNC(callback_audioAttribChanged), (gpointer)NULL );
|
||||
gtk_signal_connect( GTK_OBJECT(g_VcrCompDialog.audioAttribChangeButton), "clicked",
|
||||
GTK_SIGNAL_FUNC(callback_audioAttribChangeClicked), (gpointer)NULL );
|
||||
|
||||
callback_audioCodecChanged( NULL, NULL );
|
||||
|
||||
|
||||
// create dialogs
|
||||
create_changeDialogs();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - vcrcomp_dialog.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Blight *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/* vcrcomp_dialog.h - Handles VCR mode GUI elements */
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
|
||||
#ifndef __VCRCOMP_DIALOG_H__
|
||||
#define __VCRCOMP_DIALOG_H__
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *notebook;
|
||||
|
||||
GtkWidget *videoPage;
|
||||
GtkWidget *videoCodecCombo;
|
||||
GList *videoCodecGList;
|
||||
GtkWidget *videoAttribCombo;
|
||||
GList *videoAttribGList;
|
||||
GtkWidget *videoAttribEntry;
|
||||
GtkWidget *videoAttribChangeButton;
|
||||
|
||||
GtkWidget *audioPage;
|
||||
GtkWidget *audioCodecCombo;
|
||||
GList *audioCodecGList;
|
||||
GtkWidget *audioAttribCombo;
|
||||
GList *audioAttribGList;
|
||||
GtkWidget *audioAttribEntry;
|
||||
GtkWidget *audioAttribChangeButton;
|
||||
} SVcrCompDialog;
|
||||
|
||||
extern SVcrCompDialog g_VcrCompDialog;
|
||||
|
||||
int create_vcrCompDialog( void );
|
||||
|
||||
#endif // __VCRCOMP_DIALOG_H__
|
||||
|
||||
#endif // VCR_SUPPORT
|
27
main/main.c
27
main/main.c
|
@ -78,11 +78,6 @@
|
|||
#include "lirc.h"
|
||||
#endif //WITH_LIRC
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
#include "vcr.h"
|
||||
#include "vcr_compress.h"
|
||||
#endif
|
||||
|
||||
/** function prototypes **/
|
||||
static void parseCommandLine(int argc, char **argv);
|
||||
static int SaveRGBBufferToFile(char *filename, unsigned char *buf, int width, int height, int pitch);
|
||||
|
@ -1389,28 +1384,6 @@ int main(int argc, char *argv[])
|
|||
|
||||
}
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
VCRComp_init();
|
||||
const char *p = config_get_string( "VCR Video Codec", "XviD" );
|
||||
for (i = 0; i < VCRComp_numVideoCodecs(); i++)
|
||||
{
|
||||
if (!strcasecmp( VCRComp_videoCodecName( i ), p ))
|
||||
{
|
||||
VCRComp_selectVideoCodec( i );
|
||||
break;
|
||||
}
|
||||
}
|
||||
p = config_get_string( "VCR Audio Codec", VCRComp_audioCodecName( 0 ) );
|
||||
for (i = 0; i < VCRComp_numAudioCodecs(); i++)
|
||||
{
|
||||
if (!strcasecmp( VCRComp_audioCodecName( i ), p ))
|
||||
{
|
||||
VCRComp_selectAudioCodec( i );
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// init multi-language support
|
||||
tr_init();
|
||||
|
||||
|
|
466
main/vcr.c
466
main/vcr.c
|
@ -1,466 +0,0 @@
|
|||
#ifdef VCR_SUPPORT
|
||||
|
||||
#include "vcr.h"
|
||||
#include "vcr_compress.h"
|
||||
#include "vcr_resample.h"
|
||||
|
||||
#include "plugin.h"
|
||||
#include "rom.h"
|
||||
#include "savestates.h"
|
||||
#include "../memory/memory.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <zlib.h>
|
||||
|
||||
enum ETask
|
||||
{
|
||||
Idle = 0,
|
||||
StartRecording,
|
||||
Recording,
|
||||
StartPlayback,
|
||||
Playback
|
||||
};
|
||||
|
||||
static const char *m_taskName[] =
|
||||
{
|
||||
"Idle",
|
||||
"StartRecording",
|
||||
"Recording",
|
||||
"StartPlayback",
|
||||
"Playback"
|
||||
};
|
||||
|
||||
static char m_filename[PATH_MAX];
|
||||
static gzFile m_file = 0;
|
||||
static int m_task = Idle;
|
||||
static int m_count; // number of recorded samples
|
||||
static int m_pos; // playback position
|
||||
static int m_capture = 0; // capture movie
|
||||
static int m_audioFreq = 33000; //0x30018;
|
||||
static int m_audioBitrate = 16; // 16 bits
|
||||
static float m_videoFrame = 0;
|
||||
static float m_audioFrame = 0;
|
||||
|
||||
|
||||
static int fpsByCountrycode()
|
||||
{
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
case 0x46:
|
||||
case 0x49:
|
||||
case 0x50:
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
return 25;
|
||||
break;
|
||||
|
||||
case 0x37:
|
||||
case 0x41:
|
||||
case 0x45:
|
||||
case 0x4a:
|
||||
return 30;
|
||||
break;
|
||||
}
|
||||
|
||||
printf( "[VCR]: Warning - unknown country code, using 30 FPS for video.\n" );
|
||||
return 30;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
VCR_getKeys( int Control, BUTTONS *Keys )
|
||||
{
|
||||
if (m_task != Playback) // && m_task != StartPlayback)
|
||||
getKeys( Control, Keys );
|
||||
|
||||
if (m_task == Idle)
|
||||
return;
|
||||
|
||||
if (m_task == StartRecording)
|
||||
{
|
||||
// wait until state is saved, then record
|
||||
if ((savestates_job & SAVESTATE) == 0)
|
||||
{
|
||||
printf( "[VCR]: Starting recording...\n" );
|
||||
m_task = Recording;
|
||||
m_count = 0;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_task == Recording)
|
||||
{
|
||||
int cont = Control;
|
||||
gzwrite( m_file, &cont, sizeof (int) );
|
||||
gzwrite( m_file, Keys, sizeof (BUTTONS) );
|
||||
m_count++;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_task == StartPlayback)
|
||||
{
|
||||
// wait until state is loaded, then playback
|
||||
if ((savestates_job & LOADSTATE) == 0)
|
||||
{
|
||||
printf( "[VCR]: Starting playback...\n" );
|
||||
m_task = Playback;
|
||||
m_pos = 0;
|
||||
}
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_task == Playback)
|
||||
{
|
||||
int cont;
|
||||
gzread( m_file, &cont, sizeof (int) );
|
||||
if (cont == -1) // end
|
||||
{
|
||||
if (m_capture != 0)
|
||||
VCR_stopCapture();
|
||||
else
|
||||
VCR_stopPlayback();
|
||||
return;
|
||||
}
|
||||
if (cont != Control)
|
||||
{
|
||||
printf( "[VCR]: Warning - controller num from file doesn't match requested number\n" );
|
||||
// ...
|
||||
}
|
||||
gzread( m_file, Keys, sizeof (BUTTONS) );
|
||||
m_pos++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
VCR_updateScreen()
|
||||
{
|
||||
void *image;
|
||||
int width, height;
|
||||
static int frame = 0;
|
||||
float desync;
|
||||
|
||||
if (m_capture == 0 || readScreen == 0 || m_task != Playback)
|
||||
{
|
||||
updateScreen();
|
||||
return;
|
||||
}
|
||||
|
||||
frame ^= 1;
|
||||
if (!frame)
|
||||
return;
|
||||
|
||||
updateScreen();
|
||||
readScreen( &image, &width, &height );
|
||||
if (image == 0)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Couldn't read screen (out of memory?)\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
VCRComp_addVideoFrame( image );
|
||||
free( image );
|
||||
|
||||
m_videoFrame += 1.0;
|
||||
desync = m_videoFrame - m_audioFrame;
|
||||
if (desync >= 5.0)
|
||||
{
|
||||
int len;
|
||||
char *buf;
|
||||
printf( "[VCR]: A/V desyncronization detected: %+f frames\n", desync );
|
||||
len = (44100/(float)fpsByCountrycode()) * desync;
|
||||
len <<= 2;
|
||||
buf = malloc( len );
|
||||
memset( buf, 0, len );
|
||||
VCRComp_addAudioData( (char *)buf, len );
|
||||
free( buf );
|
||||
m_audioFrame += ((len/4)/44100.0)*fpsByCountrycode();
|
||||
}
|
||||
else if (desync <= -5.0)
|
||||
{
|
||||
printf( "[VCR]: A/V desyncronization detected: %+f frames\n", desync );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
VCR_aiDacrateChanged( int SystemType )
|
||||
{
|
||||
aiDacrateChanged( SystemType );
|
||||
|
||||
m_audioBitrate = ai_register.ai_bitrate+1;
|
||||
switch (SystemType)
|
||||
{
|
||||
case SYSTEM_NTSC:
|
||||
m_audioFreq = 48681812 / (ai_register.ai_dacrate + 1);
|
||||
break;
|
||||
case SYSTEM_PAL:
|
||||
m_audioFreq = 49656530 / (ai_register.ai_dacrate + 1);
|
||||
break;
|
||||
case SYSTEM_MPAL:
|
||||
m_audioFreq = 48628316 / (ai_register.ai_dacrate + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void VCR_aiLenChanged()
|
||||
{
|
||||
short *p = (short *)((char*)rdram + (ai_register.ai_dram_addr & 0xFFFFFF));
|
||||
unsigned int len = ai_register.ai_len;
|
||||
int ret;
|
||||
short *buf;
|
||||
|
||||
aiLenChanged();
|
||||
if (m_capture == 0)
|
||||
return;
|
||||
|
||||
// hack - mupen64 updates bitrate after calling aiDacrateChanged
|
||||
m_audioBitrate = ai_register.ai_bitrate+1;
|
||||
|
||||
ret = VCR_resample( &buf, 44100, p, m_audioFreq, m_audioBitrate, len );
|
||||
if (ret > 0)
|
||||
{
|
||||
VCRComp_addAudioData( (char *)buf, ret );
|
||||
free( buf );
|
||||
m_audioFrame += ((ret/4)/44100.0)*fpsByCountrycode();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int
|
||||
VCR_startRecord( const char *filename )
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
|
||||
if (m_task != Idle)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Cannot start recording, current task is \"%s\"\n", m_taskName[m_task] );
|
||||
return -1;
|
||||
}
|
||||
|
||||
strncpy( m_filename, filename, PATH_MAX );
|
||||
|
||||
// open record file
|
||||
strcpy( buf, m_filename );
|
||||
strncat( buf, ".rec", PATH_MAX );
|
||||
m_file = gzopen( buf, "wb" );
|
||||
if (m_file == 0)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Cannot start recording, could not open file '%s': %s\n", filename, strerror( errno ) );
|
||||
return -1;
|
||||
}
|
||||
|
||||
// save state
|
||||
printf( "[VCR]: Saving state...\n" );
|
||||
strcpy( buf, m_filename );
|
||||
strncat( buf, ".st", PATH_MAX );
|
||||
savestates_select_filename( buf );
|
||||
savestates_job |= SAVESTATE;
|
||||
m_task = StartRecording;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
VCR_stopRecord()
|
||||
{
|
||||
if (m_task == StartRecording)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
|
||||
m_task = Idle;
|
||||
if (m_file)
|
||||
{
|
||||
gzclose( m_file );
|
||||
m_file = 0;
|
||||
}
|
||||
printf( "[VCR]: Removing files (nothing recorded)\n" );
|
||||
|
||||
strcpy( buf, m_filename );
|
||||
strncat( m_filename, ".st", PATH_MAX );
|
||||
if (unlink( buf ) < 0)
|
||||
fprintf( stderr, "[VCR]: Couldn't remove save state: %s\n", strerror( errno ) );
|
||||
|
||||
strcpy( buf, m_filename );
|
||||
strncat( m_filename, ".rec", PATH_MAX );
|
||||
if (unlink( buf ) < 0)
|
||||
fprintf( stderr, "[VCR]: Couldn't remove recorded file: %s\n", strerror( errno ) );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (m_task == Recording)
|
||||
{
|
||||
int end = -1;
|
||||
|
||||
m_task = Idle;
|
||||
gzwrite( m_file, &end, sizeof (int) );
|
||||
gzwrite( m_file, &m_count, sizeof (int) );
|
||||
gzclose( m_file );
|
||||
|
||||
printf( "[VCR]: Record stopped. Recorded %ld input samples\n", m_count );
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
VCR_startPlayback( const char *filename )
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
|
||||
if (m_task != Idle)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Cannot start playback, current task is \"%s\"\n", m_taskName[m_task] );
|
||||
return -1;
|
||||
}
|
||||
|
||||
strncpy( m_filename, filename, PATH_MAX );
|
||||
char *p = strrchr( m_filename, '.' );
|
||||
if (p)
|
||||
{
|
||||
if (!strcasecmp( p, ".rec" ) || !strcasecmp( p, ".st" ))
|
||||
*p = '\0';
|
||||
}
|
||||
|
||||
// open record file
|
||||
strcpy( buf, m_filename );
|
||||
strncat( buf, ".rec", PATH_MAX );
|
||||
m_file = gzopen( buf, "rb" );
|
||||
if (m_file == 0)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Cannot start playback, could not open .rec file '%s': %s\n", filename, strerror( errno ) );
|
||||
return -1;
|
||||
}
|
||||
m_pos = 0;
|
||||
|
||||
// load state
|
||||
printf( "[VCR]: Loading state...\n" );
|
||||
strcpy( buf, m_filename );
|
||||
strncat( buf, ".st", PATH_MAX );
|
||||
savestates_select_filename( buf );
|
||||
savestates_job |= LOADSTATE;
|
||||
m_task = StartPlayback;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
VCR_stopPlayback()
|
||||
{
|
||||
if (m_task == StartPlayback)
|
||||
{
|
||||
m_task = Idle;
|
||||
if (m_file)
|
||||
{
|
||||
gzclose( m_file );
|
||||
m_file = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (m_task == Playback)
|
||||
{
|
||||
m_task = Idle;
|
||||
if (m_file)
|
||||
{
|
||||
gzclose( m_file );
|
||||
m_file = 0;
|
||||
}
|
||||
printf( "[VCR]: Playback stopped (%ld samples played)\n", m_pos );
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef __WIN32__
|
||||
void init_readScreen();
|
||||
#endif
|
||||
|
||||
int
|
||||
VCR_startCapture( const char *recFilename, const char *aviFilename )
|
||||
{
|
||||
#ifdef __WIN32__
|
||||
init_readScreen();
|
||||
#endif
|
||||
if (readScreen == 0)
|
||||
{
|
||||
printf( "[VCR]: You need a video plugin which supports ReadScreen() to record movies!\n" );
|
||||
return -1;
|
||||
}
|
||||
|
||||
m_videoFrame = 0.0;
|
||||
m_audioFrame = 0.0;
|
||||
void *dest;
|
||||
int width, height;
|
||||
readScreen( &dest, &width, &height );
|
||||
if (dest)
|
||||
free( dest );
|
||||
VCRComp_startFile( aviFilename, width, height, fpsByCountrycode() );
|
||||
m_capture = 1;
|
||||
if (VCR_startPlayback( recFilename ) < 0)
|
||||
{
|
||||
fprintf( stderr, "[VCR]: Cannot start capture, could not start playback!\n" );
|
||||
return -1;
|
||||
}
|
||||
printf( "[VCR]: Starting capture...\n" );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
VCR_stopCapture()
|
||||
{
|
||||
m_capture = 0;
|
||||
#ifndef __WIN32__
|
||||
usleep( 100000 );
|
||||
#endif
|
||||
VCR_stopPlayback();
|
||||
VCRComp_finishFile();
|
||||
printf( "[VCR]: Capture finished.\n" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void
|
||||
VCR_coreStopped()
|
||||
{
|
||||
switch (m_task)
|
||||
{
|
||||
case StartRecording:
|
||||
case Recording:
|
||||
VCR_stopRecord();
|
||||
break;
|
||||
case StartPlayback:
|
||||
case Playback:
|
||||
if (m_capture != 0)
|
||||
VCR_stopCapture();
|
||||
else
|
||||
VCR_stopPlayback();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif // VCR_SUPPORT
|
32
main/vcr.h
32
main/vcr.h
|
@ -1,32 +0,0 @@
|
|||
#ifndef __VCR_H__
|
||||
#define __VCR_H__
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
|
||||
#ifndef __WIN32__
|
||||
# include "winlnxdefs.h"
|
||||
#else
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
||||
#include "plugin.h"
|
||||
|
||||
|
||||
extern void VCR_getKeys( int Control, BUTTONS *Keys );
|
||||
extern void VCR_updateScreen();
|
||||
extern void VCR_aiDacrateChanged( int SystemType );
|
||||
extern void VCR_aiLenChanged();
|
||||
|
||||
|
||||
extern int VCR_startRecord( const char *filename );
|
||||
extern int VCR_stopRecord();
|
||||
extern int VCR_startPlayback( const char *filename );
|
||||
extern int VCR_stopPlayback();
|
||||
extern int VCR_startCapture( const char *recFilename, const char *aviFilename );
|
||||
extern int VCR_stopCapture();
|
||||
|
||||
extern void VCR_coreStopped();
|
||||
|
||||
#endif // VCR_SUPPORT
|
||||
|
||||
#endif // __VCR_H__
|
|
@ -1,564 +0,0 @@
|
|||
#ifdef VCR_SUPPORT
|
||||
|
||||
#include "vcr_compress.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <avifile.h>
|
||||
#include <aviplay.h>
|
||||
#include <version.h>
|
||||
#include <avm_creators.h>
|
||||
#include <avm_except.h>
|
||||
#include <iostream>
|
||||
#define __MODULE__ "mupen64-vcr_compress"
|
||||
|
||||
#ifndef SAFE_DELETE
|
||||
# define SAFE_DELETE(p) if (p) delete p;
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
|
||||
static BitmapInfo *m_videoFormat = 0;
|
||||
static WAVEFORMATEX *m_audioFormat = 0;
|
||||
static IAviWriteFile *m_file = 0;
|
||||
static IAviVideoWriteStream *m_videoStream = 0;
|
||||
static IAviAudioWriteStream *m_audioStream = 0;
|
||||
|
||||
static avm::vector<const CodecInfo*> m_videoCodecs;
|
||||
static avm::vector<const CodecInfo*> m_audioCodecs;
|
||||
static int m_selectedVideoCodec = 0;
|
||||
static int m_selectedAudioCodec = 0;
|
||||
|
||||
|
||||
extern "C" void
|
||||
VCRComp_init()
|
||||
{
|
||||
CodecInfo::Get( m_videoCodecs, CodecInfo::Video, CodecInfo::Encode );
|
||||
CodecInfo::Get( m_audioCodecs, CodecInfo::Audio, CodecInfo::Encode );
|
||||
}
|
||||
|
||||
|
||||
extern "C" void
|
||||
VCRComp_startFile( const char *filename, long width, long height, int fps )
|
||||
{
|
||||
if (GetAvifileVersion() != AVIFILE_VERSION)
|
||||
{
|
||||
cout << "[VCR]: This binary was compiled for Avifile ver. " << AVIFILE_VERSION
|
||||
<< ", but the library is ver. " << GetAvifileVersion() << ". Aborting." << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
SAFE_DELETE(m_file);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_file = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
|
||||
try
|
||||
{
|
||||
m_videoFormat = new BitmapInfo( width, -height, 24 ); // RGB, flipped
|
||||
|
||||
m_audioFormat = new WAVEFORMATEX;
|
||||
memset( m_audioFormat, 0, sizeof (WAVEFORMATEX) );
|
||||
m_audioFormat->wFormatTag = WAVE_FORMAT_PCM;
|
||||
m_audioFormat->nChannels = 2;
|
||||
m_audioFormat->nSamplesPerSec = 44100;
|
||||
m_audioFormat->nBlockAlign = 4;
|
||||
m_audioFormat->nAvgBytesPerSec = m_audioFormat->nSamplesPerSec * m_audioFormat->nBlockAlign;
|
||||
m_audioFormat->wBitsPerSample = 16;
|
||||
|
||||
m_file = CreateIAviWriteFile( filename );
|
||||
m_videoStream = m_file->AddVideoStream( *m_videoCodecs[m_selectedVideoCodec], m_videoFormat, 1000000/fps );
|
||||
m_videoStream->SetQuality( 8000 ); // 0...10000
|
||||
m_videoStream->Start();
|
||||
m_audioStream = m_file->AddAudioStream( *m_audioCodecs[m_selectedAudioCodec], m_audioFormat, 24000 ); // 192 kbit/s
|
||||
m_audioStream->Start();
|
||||
}
|
||||
catch (FatalError &error)
|
||||
{
|
||||
error.Print();
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
SAFE_DELETE(m_file);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_file = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
cout << "[VCR]: ERROR: Caught unknown exception!" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern "C" void
|
||||
VCRComp_finishFile()
|
||||
{
|
||||
if (m_file == 0)
|
||||
{
|
||||
cout << "VCRComp_finishFile: not recording" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_videoStream != 0)
|
||||
m_videoStream->Stop();
|
||||
if (m_audioStream != 0)
|
||||
m_audioStream->Stop();
|
||||
delete m_file;
|
||||
m_file = 0;
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
|
||||
cout << "[VCR]: Finished capturing to file." << endl;
|
||||
}
|
||||
|
||||
|
||||
extern "C" void VCRComp_addVideoFrame( const unsigned char *data )
|
||||
{
|
||||
static int count = 0;
|
||||
if (m_videoFormat == 0 || m_file == 0 || m_videoStream == 0)
|
||||
{
|
||||
cout << "VCRComp_addVideoFrame: not recording" << endl;
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
SAFE_DELETE(m_file);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_file = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CImage im( (BitmapInfo *)m_videoFormat, data, false );
|
||||
m_videoStream->AddFrame( &im );
|
||||
count++;
|
||||
if ((count % 50) == 0)
|
||||
cout << "[VCR]: " << count << " frames captured..." << endl;
|
||||
}
|
||||
catch (FatalError &error)
|
||||
{
|
||||
error.Print();
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
SAFE_DELETE(m_file);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_file = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
cout << "[VCR]: ERROR: Caught unknown exception!" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern "C" void
|
||||
VCRComp_addAudioData( const unsigned char *data, int len )
|
||||
{
|
||||
try
|
||||
{
|
||||
m_audioStream->AddData( (void *)data, len );
|
||||
}
|
||||
catch (FatalError &error)
|
||||
{
|
||||
error.Print();
|
||||
SAFE_DELETE(m_videoFormat);
|
||||
SAFE_DELETE(m_audioFormat);
|
||||
SAFE_DELETE(m_file);
|
||||
m_videoFormat = 0;
|
||||
m_audioFormat = 0;
|
||||
m_file = 0;
|
||||
m_videoStream = 0;
|
||||
m_audioStream = 0;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
cout << "[VCR]: ERROR: Caught unknown exception!" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// codec stuff
|
||||
extern "C" int
|
||||
VCRComp_numVideoCodecs()
|
||||
{
|
||||
return m_videoCodecs.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_videoCodecName( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_videoCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
|
||||
return m_videoCodecs[index]->GetName();
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_numVideoCodecAttribs( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_videoCodecs.size())
|
||||
return 0;
|
||||
|
||||
return m_videoCodecs[index]->encoder_info.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_videoCodecAttribName( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
|
||||
return m_videoCodecs[cindex]->encoder_info[aindex].GetName();
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_videoCodecAttribKind( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return -1;
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return -1;
|
||||
|
||||
switch (m_videoCodecs[cindex]->encoder_info[aindex].GetKind())
|
||||
{
|
||||
case AttributeInfo::Integer:
|
||||
return ATTRIB_INTEGER;
|
||||
break;
|
||||
|
||||
case AttributeInfo::String:
|
||||
return ATTRIB_STRING;
|
||||
break;
|
||||
|
||||
case AttributeInfo::Select:
|
||||
return ATTRIB_SELECT;
|
||||
break;
|
||||
|
||||
case AttributeInfo::Float:
|
||||
return ATTRIB_FLOAT;
|
||||
break;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_videoCodecAttribValue( int cindex, int aindex )
|
||||
{
|
||||
static char buf[256];
|
||||
char *cVal;
|
||||
int iVal;
|
||||
//float fVal;
|
||||
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
|
||||
switch (VCRComp_videoCodecAttribKind( cindex, aindex ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
Creators::GetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), iVal );
|
||||
sprintf( buf, "%d", iVal );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
Creators::GetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), (const char **)&cVal );
|
||||
strncpy( buf, cVal, 256 );
|
||||
free( cVal );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
Creators::GetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), iVal );
|
||||
strncpy( buf, VCRComp_videoCodecAttribOption( cindex, aindex, iVal ), 256 );
|
||||
break;
|
||||
|
||||
/* case ATTRIB_FLOAT:
|
||||
IVideoEncoder::GetExtendedAttr( m_videoCodecs[cindex]->fourcc,
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), fVal );
|
||||
sprintf( buf, "%f", fVal );
|
||||
break;*/
|
||||
|
||||
default:
|
||||
strcpy( buf, "Unknown type!" );
|
||||
break;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
VCRComp_videoCodecAttribSetValue( int cindex, int aindex, const char *val )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return;
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return;
|
||||
|
||||
switch (VCRComp_videoCodecAttribKind( cindex, aindex ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
i = atoi( val );
|
||||
Creators::SetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), i );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
Creators::SetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), val );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
for (int i = 0; i < VCRComp_numVideoCodecAttribOptions( cindex, aindex ); i++)
|
||||
{
|
||||
if (!strcmp( val, VCRComp_videoCodecAttribOption( cindex, aindex, i ) ))
|
||||
{
|
||||
Creators::SetCodecAttr( *m_videoCodecs[cindex],
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), i );
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_numVideoCodecAttribOptions( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return 0;
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return 0;
|
||||
|
||||
return m_videoCodecs[cindex]->encoder_info[aindex].options.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_videoCodecAttribOption( int cindex, int aindex, int oindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_videoCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_videoCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
if (oindex < 0 || oindex >= (int)m_videoCodecs[cindex]->encoder_info[aindex].options.size())
|
||||
return "<oindex out of range>";
|
||||
|
||||
return m_videoCodecs[cindex]->encoder_info[aindex].options[oindex].c_str();
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
VCRComp_selectVideoCodec( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_videoCodecs.size())
|
||||
return;
|
||||
|
||||
m_selectedVideoCodec = index;
|
||||
}
|
||||
|
||||
|
||||
|
||||
extern "C" int
|
||||
VCRComp_numAudioCodecs()
|
||||
{
|
||||
return m_audioCodecs.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_audioCodecName( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_audioCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
|
||||
return m_audioCodecs[index]->GetName();
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_numAudioCodecAttribs( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_audioCodecs.size())
|
||||
return 0;
|
||||
|
||||
return m_audioCodecs[index]->encoder_info.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_audioCodecAttribName( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
|
||||
return m_audioCodecs[cindex]->encoder_info[aindex].GetName();
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_audioCodecAttribKind( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return -1;
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return -1;
|
||||
|
||||
switch (m_audioCodecs[cindex]->encoder_info[aindex].GetKind())
|
||||
{
|
||||
case AttributeInfo::Integer:
|
||||
return ATTRIB_INTEGER;
|
||||
break;
|
||||
|
||||
case AttributeInfo::String:
|
||||
return ATTRIB_STRING;
|
||||
break;
|
||||
|
||||
case AttributeInfo::Select:
|
||||
return ATTRIB_SELECT;
|
||||
break;
|
||||
|
||||
case AttributeInfo::Float:
|
||||
return ATTRIB_FLOAT;
|
||||
break;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_audioCodecAttribValue( int cindex, int aindex )
|
||||
{
|
||||
static char buf[256];
|
||||
char *cVal;
|
||||
int iVal;
|
||||
//float fVal;
|
||||
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
|
||||
switch (VCRComp_audioCodecAttribKind( cindex, aindex ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
Creators::GetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), iVal );
|
||||
sprintf( buf, "%d", iVal );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
Creators::GetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), (const char **)&cVal );
|
||||
strncpy( buf, cVal, 256 );
|
||||
free( cVal );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
Creators::GetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), iVal );
|
||||
strncpy( buf, VCRComp_audioCodecAttribOption( cindex, aindex, iVal ), 256 );
|
||||
break;
|
||||
|
||||
/* case ATTRIB_FLOAT:
|
||||
IVideoEncoder::GetExtendedAttr( m_videoCodecs[cindex]->fourcc,
|
||||
VCRComp_videoCodecAttribName( cindex, aindex ), fVal );
|
||||
sprintf( buf, "%f", fVal );
|
||||
break;*/
|
||||
|
||||
default:
|
||||
strcpy( buf, "Unknown type!" );
|
||||
break;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
VCRComp_audioCodecAttribSetValue( int cindex, int aindex, const char *val )
|
||||
{
|
||||
int i;
|
||||
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return;
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return;
|
||||
|
||||
switch (VCRComp_audioCodecAttribKind( cindex, aindex ))
|
||||
{
|
||||
case ATTRIB_INTEGER:
|
||||
i = atoi( val );
|
||||
Creators::SetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), i );
|
||||
break;
|
||||
|
||||
case ATTRIB_STRING:
|
||||
Creators::SetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), val );
|
||||
break;
|
||||
|
||||
case ATTRIB_SELECT:
|
||||
for (int i = 0; i < VCRComp_numAudioCodecAttribOptions( cindex, aindex ); i++)
|
||||
{
|
||||
if (!strcmp( val, VCRComp_audioCodecAttribOption( cindex, aindex, i ) ))
|
||||
{
|
||||
Creators::SetCodecAttr( *m_audioCodecs[cindex],
|
||||
VCRComp_audioCodecAttribName( cindex, aindex ), i );
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
VCRComp_numAudioCodecAttribOptions( int cindex, int aindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return 0;
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return 0;
|
||||
|
||||
return m_audioCodecs[cindex]->encoder_info[aindex].options.size();
|
||||
}
|
||||
|
||||
extern "C" const char *
|
||||
VCRComp_audioCodecAttribOption( int cindex, int aindex, int oindex )
|
||||
{
|
||||
if (cindex < 0 || cindex >= (int)m_audioCodecs.size())
|
||||
return "<cindex out of range>";
|
||||
if (aindex < 0 || aindex >= (int)m_audioCodecs[cindex]->encoder_info.size())
|
||||
return "<aindex out of range>";
|
||||
if (oindex < 0 || oindex >= (int)m_audioCodecs[cindex]->encoder_info[aindex].options.size())
|
||||
return "<oindex out of range>";
|
||||
|
||||
return m_audioCodecs[cindex]->encoder_info[aindex].options[oindex].c_str();
|
||||
}
|
||||
|
||||
extern "C" void
|
||||
VCRComp_selectAudioCodec( int index )
|
||||
{
|
||||
if (index < 0 || index >= (int)m_audioCodecs.size())
|
||||
return;
|
||||
|
||||
m_selectedAudioCodec = index;
|
||||
}
|
||||
|
||||
#endif // VCR_SUPPORT
|
|
@ -1,51 +0,0 @@
|
|||
#ifdef VCR_SUPPORT
|
||||
|
||||
#ifndef __VCR_COMPRESS_H__
|
||||
#define __VCR_COMPRESS_H__
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ATTRIB_INTEGER 1
|
||||
#define ATTRIB_STRING 2
|
||||
#define ATTRIB_SELECT 3
|
||||
#define ATTRIB_FLOAT 4
|
||||
|
||||
void VCRComp_init();
|
||||
|
||||
void VCRComp_startFile( const char *filename, long width, long height, int fps );
|
||||
void VCRComp_finishFile();
|
||||
void VCRComp_addVideoFrame( const unsigned char *data );
|
||||
void VCRComp_addAudioData( const unsigned char *data, int len );
|
||||
|
||||
int VCRComp_numVideoCodecs();
|
||||
const char *VCRComp_videoCodecName( int index );
|
||||
int VCRComp_numVideoCodecAttribs( int index );
|
||||
const char *VCRComp_videoCodecAttribName( int cindex, int aindex );
|
||||
int VCRComp_videoCodecAttribKind( int cindex, int aindex );
|
||||
const char *VCRComp_videoCodecAttribValue( int cindex, int aindex );
|
||||
void VCRComp_videoCodecAttribSetValue( int cindex, int aindex, const char *val );
|
||||
int VCRComp_numVideoCodecAttribOptions( int cindex, int aindex );
|
||||
const char *VCRComp_videoCodecAttribOption( int cindex, int aindex, int oindex );
|
||||
void VCRComp_selectVideoCodec( int index );
|
||||
|
||||
int VCRComp_numAudioCodecs();
|
||||
const char *VCRComp_audioCodecName( int index );
|
||||
int VCRComp_numAudioCodecAttribs( int index );
|
||||
const char *VCRComp_audioCodecAttribName( int cindex, int aindex );
|
||||
int VCRComp_audioCodecAttribKind( int cindex, int aindex );
|
||||
const char *VCRComp_audioCodecAttribValue( int cindex, int aindex );
|
||||
void VCRComp_audioCodecAttribSetValue( int cindex, int aindex, const char *val );
|
||||
int VCRComp_numAudioCodecAttribOptions( int cindex, int aindex );
|
||||
const char *VCRComp_audioCodecAttribOption( int cindex, int aindex, int oindex );
|
||||
void VCRComp_selectAudioCodec( int index );
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // __VCR_COMPRESS_H__
|
||||
|
||||
#endif // VCR_SUPPORT
|
||||
|
|
@ -1,135 +0,0 @@
|
|||
#ifdef VCR_SUPPORT
|
||||
|
||||
#include "vcr_resample.h"
|
||||
|
||||
|
||||
static const volatile unsigned char Four2Eight[16] =
|
||||
{
|
||||
0, // 0000 = 00000000
|
||||
17, // 0001 = 00010001
|
||||
34, // 0010 = 00100010
|
||||
51, // 0011 = 00110011
|
||||
68, // 0100 = 01000100
|
||||
85, // 0101 = 01010101
|
||||
102, // 0110 = 01100110
|
||||
119, // 0111 = 01110111
|
||||
136, // 1000 = 10001000
|
||||
153, // 1001 = 10011001
|
||||
170, // 1010 = 10101010
|
||||
187, // 1011 = 10111011
|
||||
204, // 1100 = 11001100
|
||||
221, // 1101 = 11011101
|
||||
238, // 1110 = 11101110
|
||||
255 // 1111 = 11111111
|
||||
};
|
||||
|
||||
int VCR_resample( short **dst, int dst_freq, const short *src, int src_freq, int src_bitrate, int src_len )
|
||||
{
|
||||
int dst_len, i;
|
||||
float ratio;
|
||||
int buf_len;
|
||||
short *buf = 0, *left, *right;
|
||||
|
||||
// convert bitrate to 16 bits
|
||||
if (src_bitrate != 16)
|
||||
{
|
||||
buf_len = src_len * (16 / src_bitrate);
|
||||
buf = malloc( buf_len );
|
||||
if (src_bitrate == 4)
|
||||
{
|
||||
for (i = 0; i < (src_len*2); i++)
|
||||
{
|
||||
short s = ((char *)src)[i>>1];
|
||||
if (i & 1)
|
||||
{
|
||||
s &= 0xF0;
|
||||
s |= (s >> 4);
|
||||
s |= (s << 8);
|
||||
}
|
||||
else
|
||||
{
|
||||
s &= 0x0F;
|
||||
s |= (s << 4);
|
||||
s |= (s << 8);
|
||||
}
|
||||
((short *)buf)[i] = s;
|
||||
}
|
||||
}
|
||||
else if (src_bitrate == 8)
|
||||
{
|
||||
for (i = 0; i < src_len; i++)
|
||||
{
|
||||
short s = ((char *)src)[i];
|
||||
s |= (s << 8);
|
||||
((short *)buf)[i] = s;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf( "[VCR]: resample: Cannot convert sample size from %d to 16 bits\n", src_bitrate );
|
||||
free( buf );
|
||||
return -1; // unknown result
|
||||
}
|
||||
src = buf;
|
||||
src_len = buf_len;
|
||||
}
|
||||
|
||||
ratio = src_freq / (float)dst_freq;
|
||||
dst_len = src_len / ratio;
|
||||
|
||||
// de-interlace
|
||||
left = malloc( dst_len>>1 );
|
||||
right = malloc( dst_len>>1 );
|
||||
for (i = 0; i < (src_len/2); i += 2)
|
||||
{
|
||||
left[i>>1] = src[i];
|
||||
right[i>>1] = src[i+1];
|
||||
}
|
||||
if (buf)
|
||||
free( buf );
|
||||
|
||||
*dst = malloc( dst_len );
|
||||
|
||||
// convert sample rate/re-interlace
|
||||
/* // very simple algorithm (nearest sample/sample duplication)
|
||||
for (i = 0; i < (dst_len/2); i += 2)
|
||||
{
|
||||
short l, r;
|
||||
int pos = i*ratio;
|
||||
l = left[pos];
|
||||
r = right[pos];
|
||||
(*dst)[i ] = l;
|
||||
(*dst)[i+1] = r;
|
||||
}*/
|
||||
|
||||
// linear interpolation
|
||||
for (i = 0; i < (dst_len/2); i += 2)
|
||||
{
|
||||
short l1, l2, r1, r2, l, r;
|
||||
float pos = (i/2.0)*ratio;
|
||||
l1 = left[(int)pos+0];
|
||||
r1 = right[(int)pos+0];
|
||||
if (pos+1 < (src_len/2))
|
||||
{
|
||||
l2 = left[(int)pos+1];
|
||||
r2 = right[(int)pos+1];
|
||||
}
|
||||
else
|
||||
{
|
||||
l2 = l1;
|
||||
r2 = r1;
|
||||
}
|
||||
pos = pos-((float)(int)pos);
|
||||
l = (l1 * (1.0-pos)) + (l2 * pos);
|
||||
r = (r1 * (1.0-pos)) + (r2 * pos);
|
||||
(*dst)[i ] = l;
|
||||
(*dst)[i+1] = r;
|
||||
}
|
||||
|
||||
free( left );
|
||||
free( right );
|
||||
|
||||
return dst_len;
|
||||
}
|
||||
|
||||
#endif // VCR_SUPPORT
|
|
@ -1,11 +0,0 @@
|
|||
#ifdef VCR_SUPPORT
|
||||
|
||||
#ifndef __VCR_RESAMPLE__
|
||||
#define __VCR_RESAMPLE__
|
||||
|
||||
int VCR_resample( short **dst, int dst_freq,
|
||||
const short *src, int src_freq, int src_bitrate, int src_len );
|
||||
|
||||
#endif // __VCR_RESAMPLE__
|
||||
|
||||
#endif // VCR_SUPPORT
|
48
memory/dma.c
48
memory/dma.c
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - dma.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - dma.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
|
48
memory/dma.h
48
memory/dma.h
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - dma.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - dma.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef DMA_H
|
||||
#define DMA_H
|
||||
|
|
|
@ -30,8 +30,10 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "../r4300/r4300.h"
|
||||
#include "memory.h"
|
||||
|
||||
#include "../r4300/r4300.h"
|
||||
|
||||
#include "../main/main.h"
|
||||
|
||||
int use_flashram;
|
||||
|
|
|
@ -1,35 +1,26 @@
|
|||
/**
|
||||
* Mupen64 - flashram.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - flashram.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
extern int use_flashram;
|
||||
|
||||
|
||||
void init_flashram();
|
||||
void flashram_command(unsigned int command);
|
||||
unsigned int flashram_status();
|
||||
|
|
188
memory/memory.c
188
memory/memory.c
|
@ -1,52 +1,46 @@
|
|||
/*
|
||||
* Mupen64 - memory.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - memory.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "memory.h"
|
||||
#include "pif.h"
|
||||
#include "flashram.h"
|
||||
#include "dma.h"
|
||||
|
||||
#ifndef __WIN32__
|
||||
#include "../main/winlnxdefs.h"
|
||||
#else
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include "memory.h"
|
||||
#include "dma.h"
|
||||
#include "../r4300/r4300.h"
|
||||
#include "../r4300/macros.h"
|
||||
#include "../r4300/interupt.h"
|
||||
#include "../r4300/recomph.h"
|
||||
#include "../r4300/ops.h"
|
||||
#include "pif.h"
|
||||
#include "flashram.h"
|
||||
|
||||
#include "../main/main.h"
|
||||
#include "../main/plugin.h"
|
||||
#include "../main/vcr.h"
|
||||
|
||||
#ifdef DBG
|
||||
#include "../debugger/breakpoints.h"
|
||||
|
@ -2777,11 +2771,6 @@ void write_ai()
|
|||
{
|
||||
case 0x4:
|
||||
ai_register.ai_len = word;
|
||||
#ifndef VCR_SUPPORT
|
||||
aiLenChanged();
|
||||
#else
|
||||
VCR_aiLenChanged();
|
||||
#endif
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
|
@ -2836,33 +2825,6 @@ void write_ai()
|
|||
if (ai_register.ai_dacrate != word)
|
||||
{
|
||||
ai_register.ai_dacrate = word;
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
case 0x46:
|
||||
case 0x49:
|
||||
case 0x50:
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_PAL);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_PAL);
|
||||
#endif
|
||||
break;
|
||||
case 0x37:
|
||||
case 0x41:
|
||||
case 0x45:
|
||||
case 0x4a:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_NTSC);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_NTSC);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
@ -2887,11 +2849,6 @@ void write_aib()
|
|||
*((unsigned char*)&temp
|
||||
+ ((*address_low&3)^S8) ) = byte;
|
||||
ai_register.ai_len = temp;
|
||||
#ifndef VCR_SUPPORT
|
||||
aiLenChanged();
|
||||
#else
|
||||
VCR_aiLenChanged();
|
||||
#endif
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
|
@ -2948,33 +2905,6 @@ void write_aib()
|
|||
if (ai_register.ai_dacrate != temp)
|
||||
{
|
||||
ai_register.ai_dacrate = temp;
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
case 0x46:
|
||||
case 0x49:
|
||||
case 0x50:
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_PAL);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_PAL);
|
||||
#endif
|
||||
break;
|
||||
case 0x37:
|
||||
case 0x41:
|
||||
case 0x45:
|
||||
case 0x4a:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_NTSC);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_NTSC);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
@ -2998,11 +2928,6 @@ void write_aih()
|
|||
*((unsigned short*)((unsigned char*)&temp
|
||||
+ ((*address_low&3)^S16) )) = hword;
|
||||
ai_register.ai_len = temp;
|
||||
#ifndef VCR_SUPPORT
|
||||
aiLenChanged();
|
||||
#else
|
||||
VCR_aiLenChanged();
|
||||
#endif
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
|
@ -3054,33 +2979,6 @@ void write_aih()
|
|||
if (ai_register.ai_dacrate != temp)
|
||||
{
|
||||
ai_register.ai_dacrate = temp;
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
case 0x46:
|
||||
case 0x49:
|
||||
case 0x50:
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_PAL);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_PAL);
|
||||
#endif
|
||||
break;
|
||||
case 0x37:
|
||||
case 0x41:
|
||||
case 0x45:
|
||||
case 0x4a:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_NTSC);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_NTSC);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
@ -3100,11 +2998,6 @@ void write_aid()
|
|||
case 0x0:
|
||||
ai_register.ai_dram_addr = dword >> 32;
|
||||
ai_register.ai_len = dword & 0xFFFFFFFF;
|
||||
#ifndef VCR_SUPPORT
|
||||
aiLenChanged();
|
||||
#else
|
||||
VCR_aiLenChanged();
|
||||
#endif
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
|
@ -3152,33 +3045,6 @@ void write_aid()
|
|||
if (ai_register.ai_dacrate != dword >> 32)
|
||||
{
|
||||
ai_register.ai_dacrate = dword >> 32;
|
||||
switch(ROM_HEADER->Country_code&0xFF)
|
||||
{
|
||||
case 0x44:
|
||||
case 0x46:
|
||||
case 0x49:
|
||||
case 0x50:
|
||||
case 0x53:
|
||||
case 0x55:
|
||||
case 0x58:
|
||||
case 0x59:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_PAL);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_PAL);
|
||||
#endif
|
||||
break;
|
||||
case 0x37:
|
||||
case 0x41:
|
||||
case 0x45:
|
||||
case 0x4a:
|
||||
#ifndef VCR_SUPPORT
|
||||
aiDacrateChanged(SYSTEM_NTSC);
|
||||
#else
|
||||
VCR_aiDacrateChanged(SYSTEM_NTSC);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
ai_register.ai_bitrate = dword & 0xFFFFFFFF;
|
||||
return;
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - memory.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - memory.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef MEMORY_H
|
||||
#define MEMORY_H
|
||||
|
|
56
memory/pif.c
56
memory/pif.c
|
@ -1,34 +1,27 @@
|
|||
/**
|
||||
* Mupen64 - pif.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - pif.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef __WIN32__
|
||||
#include "../main/winlnxdefs.h"
|
||||
#else
|
||||
|
@ -38,11 +31,12 @@
|
|||
#include "memory.h"
|
||||
#include "pif.h"
|
||||
#include "pif2.h"
|
||||
|
||||
#include "../r4300/r4300.h"
|
||||
#include "../r4300/interupt.h"
|
||||
|
||||
#include "../main/main.h"
|
||||
#include "../main/plugin.h"
|
||||
#include "../main/vcr.h"
|
||||
|
||||
static unsigned char eeprom[0x800];
|
||||
static unsigned char mempack[4][0x8000];
|
||||
|
@ -201,11 +195,7 @@ void internal_ReadController(int Control, BYTE *Command)
|
|||
if (Controls[Control].Present)
|
||||
{
|
||||
BUTTONS Keys;
|
||||
#ifdef VCR_SUPPORT
|
||||
VCR_getKeys(Control, &Keys);
|
||||
#else
|
||||
getKeys(Control, &Keys);
|
||||
#endif
|
||||
*((unsigned int *)(Command + 3)) = Keys.Value;
|
||||
#ifdef COMPARE_CORE
|
||||
check_input_sync(Command+3);
|
||||
|
|
48
memory/pif.h
48
memory/pif.h
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - pif.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - pif.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef PIF_H
|
||||
#define PIF_H
|
||||
|
|
49
memory/tlb.c
49
memory/tlb.c
|
@ -1,33 +1,26 @@
|
|||
/**
|
||||
* Mupen64 - tlb.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - tlb.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "memory.h"
|
||||
|
||||
#include "../r4300/r4300.h"
|
||||
#include "../r4300/exception.h"
|
||||
#include "../r4300/macros.h"
|
||||
|
|
48
memory/tlb.h
48
memory/tlb.h
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - tlb.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - tlb.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef TLB_H
|
||||
#define TLB_H
|
||||
|
|
14
pre.mk
14
pre.mk
|
@ -206,16 +206,4 @@ else # set variables for debugging symbols
|
|||
CFLAGS += -g
|
||||
STRIP = true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(VCR), 1)
|
||||
# test for presence of avifile
|
||||
ifneq ($(shell avifile-config --version), 0)
|
||||
# throw error
|
||||
$(error VCR support requires avifile library)
|
||||
else
|
||||
AVIFILE_FLAGS = $(shell avifile-config --cflags)
|
||||
AVIFILE_LIBS = $(shell avifile-config --libs)
|
||||
endif
|
||||
endif
|
||||
|
||||
endif
|
48
r4300/bc.c
48
r4300/bc.c
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - bc.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - bc.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "ops.h"
|
||||
|
|
|
@ -1,34 +1,28 @@
|
|||
/**
|
||||
* Mupen64 - compare_core.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - compare_core.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "r4300.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
#include "../main/winlnxdefs.h"
|
||||
#include "../main/plugin.h"
|
||||
|
|
48
r4300/cop0.c
48
r4300/cop0.c
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - cop0.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop0.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
|
|
49
r4300/cop1.c
49
r4300/cop1.c
|
@ -1,36 +1,29 @@
|
|||
/**
|
||||
* Mupen64 - cop1.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop1.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "ops.h"
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
#include "exception.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
void MFC1()
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - cop1_d.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop1_d.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - cop1_l.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop1_l.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
|
|
|
@ -1,36 +1,29 @@
|
|||
/**
|
||||
* Mupen64 - cop1_s.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop1_s.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include "r4300.h"
|
||||
#include "ops.h"
|
||||
#include "macros.h"
|
||||
#include <math.h>
|
||||
|
||||
void ADD_S()
|
||||
{
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - cop1_w.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - cop1_w.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "ops.h"
|
||||
|
|
|
@ -1,26 +1,24 @@
|
|||
/**
|
||||
* Mupen64 - empty_dynarec.c
|
||||
* Copyright (C) 2008 Hacktarux, NMN, Richard42
|
||||
*
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - empty_dynarec.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Richard42, Nmn *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "recomp.h"
|
||||
|
||||
|
@ -46,7 +44,6 @@ void stop_it()
|
|||
|
||||
/* From gbc.c */
|
||||
|
||||
|
||||
void genbc1f_test()
|
||||
{
|
||||
}
|
||||
|
@ -105,7 +102,6 @@ void genbc1tl_idle()
|
|||
|
||||
/* From gcop0.c */
|
||||
|
||||
|
||||
void genmfc0()
|
||||
{
|
||||
}
|
||||
|
@ -116,7 +112,6 @@ void genmtc0()
|
|||
|
||||
/* From gcop1.c */
|
||||
|
||||
|
||||
void genmfc1()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -1,38 +1,31 @@
|
|||
/**
|
||||
* Mupen64 - exception.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - exception.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "exception.h"
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
#include "../memory/memory.h"
|
||||
#include "recomph.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
extern unsigned int interp_addr;
|
||||
|
||||
void address_error_exception()
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - exception.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - exception.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef EXCEPTION_H
|
||||
#define EXCEPTION_H
|
||||
|
@ -36,7 +28,6 @@ void TLB_refill_exception(unsigned int addresse, int w);
|
|||
void TLB_mod_exception();
|
||||
void integer_overflow_exception();
|
||||
void coprocessor_unusable_exception();
|
||||
|
||||
void exception_general();
|
||||
|
||||
#endif
|
||||
#endif //EXCEPTION_H
|
||||
|
|
|
@ -1,36 +1,29 @@
|
|||
/**
|
||||
* Mupen64 - interupt.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - interupt.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifndef __WIN32__
|
||||
#include <SDL.h>
|
||||
#include "../main/winlnxdefs.h"
|
||||
|
@ -39,19 +32,22 @@
|
|||
#endif
|
||||
|
||||
#include "interupt.h"
|
||||
#include "../memory/memory.h"
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
#include "exception.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
#include "../main/rom.h"
|
||||
#include "../main/main.h"
|
||||
#include "../main/plugin.h"
|
||||
#include "../main/savestates.h"
|
||||
#include "../main/vcr.h"
|
||||
#include "../main/cheat.h"
|
||||
|
||||
#ifdef WITH_LIRC
|
||||
#include "../main/lirc.h"
|
||||
#endif //WITH_LIRC
|
||||
|
||||
#include "../opengl/osd.h"
|
||||
|
||||
unsigned int next_vi;
|
||||
|
@ -377,11 +373,7 @@ void gen_interupt()
|
|||
{
|
||||
cheat_apply_cheats(ENTRY_VI);
|
||||
}
|
||||
#ifdef VCR_SUPPORT
|
||||
VCR_updateScreen();
|
||||
#else
|
||||
updateScreen();
|
||||
#endif
|
||||
#ifdef WITH_LIRC
|
||||
lircCheckInput();
|
||||
#endif
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - interupt.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - interupt.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
void compare_interupt();
|
||||
void gen_dp();
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - macros.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - macros.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef MACROS_H
|
||||
#define MACROS_H
|
||||
|
|
48
r4300/ops.h
48
r4300/ops.h
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - ops.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - ops.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
void NI();
|
||||
void LW();
|
||||
|
|
|
@ -1,37 +1,28 @@
|
|||
/**
|
||||
* Mupen64 - profile.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - profile.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "sys/time.h"
|
||||
|
||||
#ifdef PROFILE
|
||||
|
||||
static unsigned int time_in_section[5];
|
||||
static unsigned int last_start[5];
|
||||
static unsigned int last_refresh;
|
||||
|
|
|
@ -1,41 +1,35 @@
|
|||
/**
|
||||
* Mupen64 - pure_interp.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - pure_interp.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include "r4300.h"
|
||||
#include "exception.h"
|
||||
#include "../memory/memory.h"
|
||||
#include "macros.h"
|
||||
#include "interupt.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
#ifdef DBG
|
||||
#include "../debugger/debugger.h"
|
||||
#endif
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - r4300.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - r4300.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
@ -37,7 +29,6 @@
|
|||
#include "recomp.h"
|
||||
#include "recomph.h"
|
||||
|
||||
#include "../main/vcr.h"
|
||||
#include "../memory/memory.h"
|
||||
|
||||
#ifdef DBG
|
||||
|
@ -1831,8 +1822,5 @@ void r4300_execute()
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef VCR_SUPPORT
|
||||
VCR_coreStopped();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -1,40 +1,34 @@
|
|||
/**
|
||||
* Mupen64 - r4300.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - r4300.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef R4300_H
|
||||
#define R4300_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "recomp.h"
|
||||
|
||||
#include "../main/rom.h"
|
||||
#include "../memory/tlb.h"
|
||||
#include "recomp.h"
|
||||
|
||||
extern precomp_instr *PC;
|
||||
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - recomp.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - recomp.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
|
|
|
@ -1,31 +1,23 @@
|
|||
/**
|
||||
* Mupen64 - recomp.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - recomp.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef RECOMP_H
|
||||
#define RECOMP_H
|
||||
|
|
|
@ -1,36 +1,29 @@
|
|||
/**
|
||||
* Mupen64 - recomph.h
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - recomph.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef RECOMPH_H
|
||||
#define RECOMPH_H
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "recomp.h"
|
||||
|
||||
#if defined(COUNT_INSTR)
|
||||
|
|
|
@ -1,38 +1,31 @@
|
|||
/**
|
||||
* Mupen64 - regimm.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - regimm.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "interupt.h"
|
||||
#include "../memory/memory.h"
|
||||
#include "ops.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
void BLTZ()
|
||||
{
|
||||
local_rs = irs;
|
||||
|
|
|
@ -1,39 +1,32 @@
|
|||
/**
|
||||
* Mupen64 - special.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - special.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include "r4300.h"
|
||||
#include "interupt.h"
|
||||
#include "../memory/memory.h"
|
||||
#include "ops.h"
|
||||
#include "exception.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "../memory/memory.h"
|
||||
|
||||
void NOP()
|
||||
{
|
||||
PC++;
|
||||
|
|
53
r4300/tlb.c
53
r4300/tlb.c
|
@ -1,42 +1,35 @@
|
|||
/**
|
||||
* Mupen64 - tlb.c
|
||||
* Copyright (C) 2002 Hacktarux
|
||||
*
|
||||
* Mupen64 homepage: http://mupen64.emulation64.com
|
||||
* email address: hacktarux@yahoo.fr
|
||||
*
|
||||
* If you want to contribute to the project please contact
|
||||
* me first (maybe someone is already making what you are
|
||||
* planning to do).
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/
|
||||
* or modify it under the terms of the GNU General Public Li-
|
||||
* cence as published by the Free Software Foundation; either
|
||||
* version 2 of the Licence, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be use-
|
||||
* ful, but WITHOUT ANY WARRANTY; without even the implied war-
|
||||
* ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public Licence for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* Licence along with this program; if not, write to the Free
|
||||
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
||||
* USA.
|
||||
*
|
||||
**/
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - tlb.c *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2002 Hacktarux *
|
||||
* *
|
||||
* 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., *
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#include <zlib.h>
|
||||
|
||||
#include "r4300.h"
|
||||
#include "macros.h"
|
||||
#include "ops.h"
|
||||
#include "recomph.h"
|
||||
#include "interupt.h"
|
||||
|
||||
#include "../main/md5.h"
|
||||
#include "../memory/memory.h"
|
||||
|
||||
#include <zlib.h>
|
||||
|
||||
uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len);
|
||||
|
||||
void TLBR()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - TextureFilters_hq2x.cpp *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 Rice1964 *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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 *
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - TextureFilters_hq4x.cpp *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 Rice1964 *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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 *
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - TextureFilters_hq4x.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 Rice1964 *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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 *
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Mupen64plus - TextureFilters_lq2x.h *
|
||||
* Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
|
||||
* Copyright (C) 2003 Rice1964 *
|
||||
* Copyright (C) 2003 MaxSt ( maxst@hiend3d.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 *
|
||||
|
|
Loading…
Reference in a new issue