Removed defunct and unlicensed VCR functions, and language files. FSF address fixes.

This commit is contained in:
Scott Knauert 2008-08-19 04:28:04 +00:00
parent 87ddd10e52
commit bc2476ede2
62 changed files with 792 additions and 4682 deletions

View file

@ -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

View file

@ -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];

View file

@ -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];

View file

@ -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

View file

@ -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

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 );

View file

@ -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;
}

View file

@ -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

View file

@ -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();

View file

@ -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

View file

@ -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__

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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;

View file

@ -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();

View file

@ -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;

View file

@ -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

View file

@ -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);

View file

@ -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

View file

@ -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"

View file

@ -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
View file

@ -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

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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()

View file

@ -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>

View file

@ -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"

View file

@ -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()
{

View file

@ -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"

View file

@ -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()
{
}

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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();

View file

@ -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

View file

@ -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();

View file

@ -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;

View file

@ -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

View file

@ -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
}

View file

@ -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;

View file

@ -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>

View file

@ -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

View file

@ -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)

View file

@ -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;

View file

@ -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++;

View file

@ -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()

View file

@ -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 *

View file

@ -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 *

View file

@ -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 *

View file

@ -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 *