1. ifcaro
  2. Open PS2 Loader

Commits

Michael Jimenez  committed beadd6c

a few fixes so that OPL can comply with some Digitus NAS (with the help of Thinner), removed obsoletes language files and added 'Filipino' language file

  • Participants
  • Parent commits 01cd748
  • Branches default

Comments (0)

Files changed (31)

File Makefile

View file
 LOADER_OBJS = obj/loader.o \
 		obj/alt_loader.o obj/elfldr.o obj/kpatch_10K.o obj/imgdrv.o obj/eesync.o \
 		obj/usb_cdvdman.o obj/usb_4Ksectors_cdvdman.o obj/smb_cdvdman.o obj/smb_pcmcia_cdvdman.o obj/hdd_cdvdman.o obj/hdd_pcmcia_cdvdman.o \
-		obj/cdvdfsv.o obj/usbd_ps2.o obj/usbd_ps3.o obj/usbhdfsd.o obj/cddev.o eeload_patches/eeload_patches.o \
+		obj/cdvdfsv.o obj/usbd_ps2.o obj/usbd_ps3.o obj/usbhdfsd.o obj/cddev.o \
 		obj/ps2dev9.o obj/smsutils.o obj/smstcpip.o obj/ingame_smstcpip.o obj/smsmap.o obj/smbman.o obj/discid.o \
 		obj/ps2atad.o obj/poweroff.o obj/ps2hdd.o obj/genvmc.o obj/hdldsvr.o obj/udptty.o obj/iomanx.o obj/filexio.o \
 		obj/ps2fs.o obj/util.o obj/ioptrap.o obj/ps2link.o

File eeload_patches/eeload_patches.o

Binary file removed.

File include/menusys.h

View file
 void menuPrevH();
 void menuNextV();
 void menuPrevV();
+void menuNextPage();
+void menuPrevPage();
+void menuFirstPage();
+void menuLastPage();
 struct menu_item_t* menuGetCurrent();
 GSTEXTURE* menuGetCurrentArt();
 void menuItemExecButton(void (*execActionButton)(struct menu_item_t *self, int id));

File include/supportbase.h

View file
 } base_game_info_t;
 
 int sbIsSameSize(const char* prefix, int prevSize);
-void sbReadList(base_game_info_t **list, const char* prefix, const char* sep, int *fsize, int* gamecount);
+void sbReadList(base_game_info_t **list, const char* prefix, int *fsize, int* gamecount);
 int sbPrepare(base_game_info_t* game, int mode, char* isoname, int size_cdvdman, void** cdvdman_irx, int* patchindex);
 void sbDelete(base_game_info_t **list, const char* prefix, const char* sep, int gamecount, int id);
 void sbRename(base_game_info_t **list, const char* prefix, const char* sep, int gamecount, int id, char* newname);

File include/util.h

View file
 int getFileSize(int fd);
 int openFile(char* path, int mode);
 void* readFile(char* path, int align, int* size);
+void checkCreateDir(char* path);
 int listDir(char* path, char* separator, int maxElem,
 		int (*readEntry)(int index, char *path, char* separator, char* name, unsigned int mode));
 

File lng/lang_Bulgarian.lng

View file
-# translation by Savov, updated by Vsub
+# translation by vsub
 Bulgarian
                Добре дошли в OPEN PS2 LOADER. Кодът е базиран на  HD PROJECT <http://psx-scene.com> Адаптация на USB ADVANCE формата и инсталатора от IFCARO <http://ps2dev.ifcaro.net> Ядрото на програмата е от JIMMIKAELKAEL. Интерфейс от VOLCA. Благодарим ви, че ползвате програмата ни
 Open PS2 Loader %s
-Конфигурация на изглед
-IP конфигурация
-Запази промени
+Запамети промените
 O Назад
-Бавно меню
-Бързо меню
-Много бързо меню
-Динамично меню
-Статично меню
-Настройка на изглед
-Настройка на мрежата
-Избор на език
-Няма игри
-Не е налично
-Настройките са запазени...
-Грешка при запис!
+Настроики на мрежата
+<no values>
+Настроиките са запаметени...
+Грешка при запаметяване на настоиките
 Изход
-Настройки
-Игри от ЮСБ
-Игри от Хард Диск
-Игри от Мрежа
+Настроики
+USB Игри
+HDD Игри
+Игри по мрежата
 Програми
-Теми
+Скин
 Език
-Език: Български
-Стартирай мрежа
-Зареждане на мрежа:
-Грешка при зареждане на мрежа
-Автоматично стартиране на мрежа
+Грешка при стартирване на мрежата
 Включено
 Изключено
 Ок
-Настройка на съвместимост
-Изтриване на всички настройки
-Изтриване на игрови настройки
-Скорост на скролиране
-Вид на менюто
+Настроики за играта
+Премахни всички настроики
+Премахни всички настоики за играта
+Скролиране
 Бавно
+Нормално
 Бързо
-Много бързо
-Статично
-Динамично
-Меню при старт
+Лист при стартирване
 Зареди от диска
 Моля изчакаите
-Грешка при заредането на Game ID
-Използваи хард диска
-Автоматично стартиране на хард диска
-Стартираи хард диска
-Автоматично сортиране
+Грешка при зареждане на ИД на играта
+Автоматично сортирване
 Грешка при зареждането на езиковия фаил
-Изключи Debug цветовете
-Няма свързан контролер...
-Включи Cover Art
-Широк екран
+Изключи дебуг цветовете
+Не е открит геимпад
+Ползваи обложки
+Широк екран
+Изкючи конзолата
+Зареждане на настроиките
+Запаметяване на настроиките
+Стартираи устроиството
+USB - режим на стартиране
+HDD - режим на стартиране
+ETH - режим на стартиране
+Програми - режим на стартиране
+Автоматично
+Ръчно
+Стартираи HDL сървъра
+HDL се стартирва...
+HDL сървъра работи... Задръжте [O] за да го спрете
+Задръжте [X] за да изключите HDL сървъра
+HDL сървъра се изключва...
+При изход,стартираи
+Цвят на фона
+Цвят на текста
+IP
+Mask
+Gateway
+Порт
+Шерната папка
+Юзър
+Парола
+<не е нагласено>
+X Потвърди
+Играта/фаила ще бъде необратимо изтрит, съгласни ли сте ?
+Преименуваи
+Изтрии
+Стартираи
+Настройки на дисплея
+Ползваи опциите триене и преименуване
+Проверяваи USB играта за фрагментация
+Запомни последната стартирана игра
+Грешка, играта е фрагментирана
+Грешка при опит за стартирване
+Тестваи
+Остави празно за достъп тип гост
+Зареди алтернаивно ядро
+Алтернативан начин на четене
+Unhook Syscalls
+Без PSS видеота
+Изключи DVD-DL поддържката
+Изключи IGR
+Намали cdvdfsv буфера
+Скрии dev9 модула
+Алтернативно IGR комбо
+Ако премените размера ще форматирате VMC
+Създаи
+Промени
+Отказ
+Реинициализира
+Ползваи стандартна VMC
+Нагласи VMC
+Име
+Размер
+Статус
+Прогрес
+VMC фаила съществува
+Неправилно име на VMC фаила, размера е неправилен
+VMC трябва да се създаде
+Грешка със VMC фаила, продължи със физическата MC ?

File lng/lang_Czech.lng

-Czech
-               VITEJTE V PROGRAMU OPEN PS2 LOADER. ZALOZENO NA ZDROJ. KODECH PROJEKTU HD PROJECT <http://psx-scene.com> ADAPTACE NA USB ADVANCE FORMAT A PRVOTNI GUI STVORIL IFCARO <http://ps2dev.ifcaro.net> VETSINU KODU LOADERU SEPSAL JIMMIKAELKAEL. PRIDAVNE PRACE NA GUI PROVEDL VOLCA. DEKUJEME ZE POUZIVATE TENTO PROGRAM ^^
-Open PS2 Loader %s
-Nastaveni vzhledu
-IP configuration
-Ulozit zmeny
-O Zpet
-Posuv Pomaly
-Posuv Stredni
-Posuv Rychly
-Dynamicke Menu
-Staticke Menu
-Nastaveni vzhledu
-Nastaveni site
-Volba jazyka
-Zadne Polozky
-Neni doposud k dispozici
-Nastaveni ulozeno...
-Chyba Pri ukladani zmen!
-Konec
-Nastaveni
-USB Hry
-HDD Hry
-Sitove Hry
-Aplikace
-Vzhled
-Jazyk
-Language: Czech
-Spustit sit
-Nacitani site: %d
-Chyba pri spousteni site
-Automaticke spusteni site
-Zap
-Vyp
-Ok
-Nastaveni kompatibility
-Odstranit vsechna nastaveni
-Vsechna nastaveni hry odstranena
-Posuv
-Typ menu
-Pomalu
-Stredne
-Rychle
-Staticke
-Dynamicke
-Vychozi nabidka
-Nacist z disku
-Prosim cekejte
-Chyba pri nacitani Game ID
-Pouzivat Pevny Disk
-Automaticky spoustet HDD
-Start HDD
-Automaticke razeni
-Chyba pri nacitani lokalizace

File lng/lang_Dutch.lng

-Dutch
-               WELKOM BIJ DE OPEN PS2 LOADER. BASIS CODE GEBASEERD OP DE SOURCE CODES VAN HD PROJECT <http://psx-scene.com> TOEVOEGING VAN USB ADVANCE FORMAAT EN HET BEGIN VAN DE GUI GEMAAKT DOOR IFCARO <http://ps2dev.ifcaro.net> HET MEESTE VAN DE LAAD CORE IS GEMAAKT DOOR JIMMIKAELKAEL. ALLE GUI VERBETERINGEN ZIJN GEMAAKT DOOR VOLCA. BEDANKT DAT JE ONS PROGRAMMA GEBRUIKT ^^
-Open PS2 Loader %s
-Thema configuratie
-IP configuratie
-Bewaar veranderingen
-O Terug
-Scroll Langzaam
-Scroll Normaal
-Scroll Snel
-Dynamisch Menu
-Statisch Menu
-Configureer thema
-Netwerk configuratie
-Selecteer taal
-Geen Items
-Nog niet beschikbaar
-Instellingen bewaard...
-Fout bij schrijven van instellingen!
-Sluiten
-Instellingen
-USB Spellen
-HDD Spellen
-Netwerk Spellen
-Applicaties
-Thema
-Taal
-Taal: Nederlands
-Start netwerk
-Netwerk laden: %d
-Netwerk start fout
-Netwerk automatisch laden
-Aan
-Uit
-Ok
-Compatibiliteit instellingen
-Verwijder alle instellingen
-Alle keys voor de spellen verwijderd
-Scrollen
-Menu type
-Langzaam
-Normaal
-Snel
-Statisch
-Dynamisch
-Standard menu
-Laad van Disc
-Even Wachten
-Fout bij laden van de Game ID

File lng/lang_Filipino.lng

View file
+# translation by Ceed Lorenzo <Ceedlorenzo@yahoo.com>
+Filipino
+               MALIGAYANG PAGGAMIT NG OPEN PS2 LOADER. MAIN CODE AY BASE SA SOURCE CODE NG HD PROJECT <http://psx-scene.com> ADAPTATION SA FORMAT NG USB ADVANCE AT PANGUNAHING GUI NI IFCARO <http://ps2dev.ifcaro.net> KARAMIHAN SA LOADER CORE AY GAWA NI JIMMIKAELKAEL. LAHAT NG PAGBABAGO SA GUI AY GAWA NI VOLCA. MARAMING SALAMAT SA PAGGAMIT NG AMING PROGRAM ^^
+Open PS2 Loader %s
+I-save ang mga pagbabago
+O Bumalik
+Network config
+<walang laman>
+Settings ay Nai-save...
+Error sa pagsulat ng Settings!
+Lamabas
+Settings
+Laro sa USB
+Laro sa HDD
+Laro sa Network
+Apps
+Tema
+Wika
+Error sa Pagsisimula ng Network
+On
+Off
+Ok
+Setting ng Game
+Tangalin lahat ng Settings
+Tangalin lahat ng keys para sa Laro
+Scrolling
+Mabagal
+Katamtaman
+Mabilis
+Default na menu
+Kunin galing sa disc
+Maghintay ng Sandali
+Error sa Pagkuha ng Game ID
+Automatikong Pagsasaayos
+Error sa pagload ng file para sa wika
+Huwag paganahin ang Debug Colors
+Walang napansing controller, naghihintay...
+Paganahin ang Cover Art
+Wide screen
+Patayin
+Niloload ang config
+sini-save config
+Simulan ang Aparato
+Mode para simulan ang USB Device
+Mode para simulan ang HDD Device
+Mode para simulan ang ETH Device
+Mode sa pagsisimula ng Application
+Auto
+Manual
+Simulan ang HDL Server
+HDL Server ay nagsisimula...
+HDL Server ay tumatakbo... Pindutin ang [O] para itigil
+pindutin ang [X] para patayin ang HDL server
+HDL Server ay tinatangal...
+Lamabas sa 
+Kulay ng Background
+Kulay ng Texto
+IP
+Mask
+Gateway
+Port
+Share
+User
+Password
+<hindi nakatakda>
+X Tangapin
+Item ay permanenteng buburahin, magpatuloy ?
+palitan ang pangalan
+Burahin
+Patakbuhin
+Setting ng Display
+Paganhin ang pagbubura at pagpapalit ng pangalan
+Alamin ang fragmentation ng Laro sa USB
+Alalahanin ang huling nalaro
+Error, ang laro ay fragmented
+Error, ang item ay hindi maitakbo
+Subukan
+Iwanang walang laman para sa GUEST auth.
+Load alternate core
+Kapalit na data read method
+Unhook Syscalls
+0 PSS mode
+Huwag paganahin ang DVD-DL
+Huwag paganahin ang IGR
+Bawasan ang cdvdfsv buffer
+Itago ang dev9 module
+Kapalit na IGR combo
+Pagpalit ng laki ay magrereformat ng VMC
+Gumawa
+Baguhin
+Iurong
+Reset
+Gumamit ng generic
+IConfigure ang VMC
+Pangalan
+Laki
+Katayuan
+Progreso
+Mayroon ng VMC file
+Maling VMC file, hindi tama ang laki
+Kailangang magawan ng VMC file
+Error sa VMC file, magpatuloy sa pisikal na MC ?

File lng/lang_German.lng

View file
-German
-               WILLKOMMEN BEIM OPEN PS2 LOADER. DAS HAUPTPROGRAMM BASIERT AUF DEM QUELLCODE DES HD PROJEKTS <http://psx-scene.com> PORTIERUNG IN DAS USB ADVANCE FORMAT UND STANDARD GUI BY IFCARO <http://ps2dev.ifcaro.net> DAS MEISTE DES LOADER PROGRAMMS IST VON JIMMIKAELKAEL PROGRAMMIERT. ALLE GUI ERWEITERUNGEN WURDEN VON VOLCA ERSTELLT. DANKE FÜR DAS BENUTZEN UNSERES PROGRAMMS ^^
-Open PS2 Loader %s
-Anderungen speichern
-O Zurück
-Netzwerk Einstellungen
-Keine Items
-Einstellungen gespeichert...
-Fehler beim speichern der Einstellungen!
-Ausgang
-Einstellungen
-USB Spiele
-HDD Spiele
-Netzwerk Spiele
-Programme
-Theme
-Sprache
-Fehler beim starten des Netzwerks
-An
-Aus
-Ok
-Kompatibilitäts Einstellungen
-Entferne alle Einstellungen
-Alle Einstellungen des Spiels entfernt
-Scrolling
-Langsam
-Normal
-Schnell
+# translation by the ps3-tools.de community  
+Deutsch
+               WILLKOMMEN BEIM OPEN PS2 LOADER. DER MAIN CODE BASIERT AUF DEM SOURCE CODE VOM HD PROJECT <http://psx-scene.com> ANGEPASST AUF DAS USB ADVANCE FORMAT UND ERSTEM GUI BY IFCARO <http://ps2dev.ifcaro.net> DER GRÖSSTE ANTEIL VOM LOADER CORE IST VON JIMMIKAELKAEL GESCHRIEBEN. ALLE VERBESSRUNGEN AN DEM GUI WURDEN VON VOLCA VORGENOMMEN. VIELEN DANK DAS DU UNSER PROGRAMM NUTZT ^^
+Open PS2 Loader %s
+Änderungen Speichern
+O Zurück
+Netzwerk Einstellungen
+<kein Wert>
+Änderungen gespeichert...
+Fehler beim speichern der Einstellungen
+Ausgang
+Einstellungen
+USB Spiele
+HDD Spiele
+Network Spiele
+Programme
+Theme
+Sprache
+Fehler beim Starten des Netzwerkes
+An
+Aus
+Ok
+Spiele Einstellungen
+Verwerfe alle Einstellungen
+Entferne alle Einstellungen des Spiels
+Scrollen
+Langsam
+Mittel
+Schnell
+Grundeinstellungen
+Von Disk laden
+Bitte warten
+Fehler beim Laden der Spiel ID
+Automatisches Scrollen
+Fehler beim Laden des Sprachfiles
+Debug Farben ausschalten
+Kein Controler gefunden, ich warte...
+Aktiviere Cover Art
+Wide Screen
+Ausschalten
+Konfiguration laden
+Konfiguration speichern
+Starte Gerät
+USB Geräte Start Modus
+Interne Festplatte Start Modus
+Netzwerk Start Modus
+Programm Start Modus
+Automatisch
+Anleitung
+Starte HDL Server
+HDL Server startet...
+HDL Server läuft... Drücke [O] um zu stoppen
+Druecke [X] um den HDL Server zu schließen
+HDL Server wird gestoppt...
+Verlassen zu
+Hintergrundfarbe
+Textfarbe
+IP Adresse
+Netzwerkmaske
+Gateway
+Port
+Share
+User
+Passwort
+<keine Eingabe>
+X Bestätigen
+Das Item wird endgültig gelöscht ! fortfahren ?
+Umbennnen
+Löschen
+Starten
+Display Einstellungen
+Löschen und umbennen aktivieren
+USB Spiel Fragmentierung überprüfen
+Zuletzt gespieltes Spiel merken
+Fehler ! Das Spiel ist fragmentiert
+Fehler ! kann das Item nicht starten
+Test
+Frei lassen für Gäste Modus.
+Alternativen Kern laden
+Alternativer Daten Lese Modus
+Syscalls entladen
+0 PSS mode
+Deaktiviere DVD-DL
+Deaktiviere IGR
+Verkleinere cdvdfsv buffer
+Verstecke dev9 Module
+Alternative IGR Combo
+Durch das Verändern der Größe wird die VMC erneut formatiert
+Erstellen
+Verändern
+Abbrechen
+Reset
+Benutze generic
+Konfiguriere VMC
+Name
+Größe
+Status
+Fortschritt
+VMC File vorhanden
+Defekter VMC File, die Größe ist falsch
+VMC File muss erstellt werden
+Fehler mit dem VMC File ? mit echter MC fortfahren ?

File lng/lang_Indonesian.lng

View file
+# translation by Satrio Bahar
 Indonesian
                SELAMAT DATANG DI OPEN PS2 LOADER. KODE UTAMA BERDASARKAN SUMBER KODE DARI HD PROJECT <http://psx-scene.com> DI ADAPTASI UNTUK FORMAT USB ADVANCE DAN GUI UTAMA DIBUAT OLEH IFCARO <http://ps2dev.ifcaro.net> SEBAGIAN BESAR CORE DIBUAT OLEH JIMMIKAELKAEL. SEMUA PERBAIKAN GUI DIBUAT OLEH VOLCA. TERIMA KASIH TELAH MENGGUNAKAN PROGRAM KAMI ^^
 Open PS2 Loader %s
-Konfigurasi tema
-Konfigurasi IP
 Simpan perubahan
 O Kembali
-Gulung Lambat
-Gulung Normal
-Gulung Cepat
-Menu Dinamis
-Menu Statis
-Mengatur tema
 Konfigurasi jaringan
-Pilih bahasa
-Tidak ada data
-Belum tersedia
+<kosong>
 Pengaturan disimpan...
 Gagal menulis pengaturan!
 Keluar
 Pengaturan
-Game-Game USB
-Game-Game HDD
-Game-Game Jaringan
-Aplikasi
+Daftar game USB
+Daftar game HDD
+Daftar game jaringan
+Daftar Aplikasi
 Tema
 Bahasa
-Bahasa: Bahasa Indonesia
-Mulai Jaringan
-Memuat jaringan: %d
-Gagal memulai jaringan
-jaringan memulai otomatis
-On
-Off
+Kesalahan memulai jaringan
+Aktif
+Tidak aktif
 Oke
-Pengaturan kompatibilitas
+Pengaturan game
 Hapus semua pengaturan
-Hapus semua pengaturan gamee
+Hapus semua pengaturan game
 Perputaran
-Tipe menu
 Lambat
-Normal
+Sedang
 Cepat
-Statis
-Dinamis
+Menu pertama
+Baca dari piringan
+Silahkan tunggu
+Kesalahan saat memuat ID game
+Penyortiran otomatis
+Kesalahan memuat file bahasa
+Matikan warna debug
+Tidak ada kontrol dideteksi, Menunggu...
+Memungkinkan tampil sampul game
+Layar lebar
+Matikan PS2
+Memuat konfigurasi
+Menyimpan konfigurasi
+Memulai perangkat
+Pola memulai perangkat USB
+Pola memulai perangkat HDD
+Pola memulai perangkat ETH
+Pola memulai Aplikasi
+Otomatis
+Manual
+Memulai HDL Server
+HDL Server dimulai...
+HDL Server berjalan... Tekan [O] untuk berhenti
+Tekan [X] tuk mengakhiri HDL server
+HDL Server Unloading...
+Keluar ke
+Warna latar
+Warna tulisan
+IP
+Mask
+Gateway
+Port
+Share
+User
+Password
+<Tidak terpakai>
+X Setuju
+Item akan dihapus selamanya, Lanjutkan ?
+Ubah nama
+Hapus
+Main
+Pengaturan tampilan
+Memungkinkan operasi hapus dan ubah nama item
+Periksa fragmentasi game USB
+Ingat game yang terakhir dimainkan
+Kesalahan, Game terfragmentasi
+Kesalahan, Item tidak bisa jalan
+Coba
+Biarkan kosong untuk penulis TAMU
+Memuat alternatif inti
+Metode alternatif membaca data
+Lepaskan Syscalls
+0 PSS mode
+Matikan DVD_DL
+Matikan IGR
+Kurangi buffer cdvdfsv
+Sembunyikan modul Dev9
+IGR combo pengganti
+Rubah ukuran format kembali VMC
+Ciptakan
+Modifikasi
+Batalkan
+Ulangi
+Gunakan yang umum
+Konfigurasi VMC
+Nama
+Ukuran
+Status
+Kemajuan
+VMC ada
+VMC Cacat, ukuran yang salah
+VMC perlu diciptakan
+Kesalahan pada VMC, lanjutkan dengan MC fisik ?

File lng/lang_Italian.lng

View file
-# translation by jimmikaelkael, updated by 0NullChAr0
+# translation by 0NullChAr0
 Italian
                WELCOME TO OPEN PS2 LOADER. MAIN CODE BASED ON SOURCE CODE OF HD PROJECT <http://psx-scene.com> ADAPTATION TO USB ADVANCE FORMAT AND INITIAL GUI BY IFCARO <http://ps2dev.ifcaro.net> MOST OF LOADER CORE IS MADE BY JIMMIKAELKAEL. ALL THE GUI IMPROVEMENTS ARE MADE BY VOLCA. THANKS FOR USING OUR PROGRAM ^^
 Open PS2 Loader %s
 Attivato
 Disattivato
 OK
-Impostazioni compatibilita'
+Impostazioni Gioco
 Rimuovi tutte le impostazioni
 Tutte le impostazioni del gioco sono state rimosse
 Scorrimento
 L'oggetto sara' cancellato definitivamente, continuare?
 Rinomina
 Cancella
-Avvia
+Avvia
+Impostazioni Schermo
+Abilita operazioni di Elimina e Rinomina
+Controlla frammentazione Gioco USB
+Ricorda ultimo gioco Avviato
+Errore, il gioco e' frammentato
+Errore, impossibile avviare l'oggetto
+Testa
+Lasciare vuoto per Autorizzazioni GUEST
+Carica Nucleo Alternativo
+Metodo lettura data alternativo
+Sgancia chiamate Sistema
+PSS Disabilitati
+Disabilita DVD-DL
+Disabilita IGR
+Riduci buffer cdvdfsv
+Nascondi modulo dev9
+Combo IGR alternato
+Cambiare le dimensioni della VMC
+Creare
+Modifica
+Annulla
+Resetta
+Usa generico
+Configura VMC
+Nome
+Dimensione
+Stato
+Progresso
+File VMC esiste
+File VMC invalido, la dimensione non e' corretta
+File VMC deve essere creato
+Errore con il File VMC, continuare con MC fisica ?

File lng/lang_Norwegian.lng

-Norvegian
-               VELKOMMEN TIL OPEN PS2 LOADER. HOVEDPROGRAMMET ER BASERT PÅ KILDEKODE FRA HD PROJECT <http://psx-scene.com> TILPASSING TIL USB ADVANCE FORMAT OG FØRSTE BRUKERGRENSESNITT AV IFCARO <http://ps2dev.ifcaro.net> DET MESTE AV OPEN PS2 LOADERS KJERNE ER LAGET AV JIMMIKAELKAEL. ALLE BRUKERGRENSESNITTFORBEDRINGENE ER LAGET AV VOLCA. TAKK FOR AT DU BRUKER VÅRT PROGRAM ^^
-Open PS2 Loader %s
-Tema oppsett
-IP oppsett
-Lagre endringer
-O Tilbake
-Rull sakte
-Rull middels
-Rull raskt
-Dynamisk meny
-Statisk meny
-Velg tema
-Nettverksinstillinger
-Velg språk
-No Items
-Ikke tilgjengelig enda
-Oppsett lagret...
-Feil ved lagring av oppsett!
-Avslutt
-Oppsett
-USB Spill
-HDD Spill
-Nettverksspill
-Programmer
-Temaer
-Språk
-Språk: Norsk
-Start nettverk
-Nettverk lastes: %d
-Nettverk lastings feilet
-Nettverk starter automatisk
-På
-Av
-Ok
-Kompatibilitetsoppsett
-Fjern alle instillinge
-Fjernet alle instillinger fra spillet
-Rulling
-Meny type
-Sakte
-Middels
-Raskt
-Statisk
-Dynamisk

File lng/lang_Polish.lng

View file
-# translation by Berion
+# translation by loki7777
 Polish
                WITAMY W PROGRAMIE OPEN PS2 LOADER. GŁÓWNY KOD OPARTY ZOSTAŁ NA KODZIE ŹRÓDŁOWYM HD PROJECT <http://psx-scene.com> IMPLEMENTACJE FORMATU USB ADVANCE I GUI PRZEZ IFCARO <http://ps2dev.ifcaro.net> WIĘKSZOŚĆ JĄDRA LOADERA WYKONANA PRZEZ JIMMIKAELKAEL. WSZYSTKIE ULEPSZENIA GUI WYKONANE PRZEZ VOLCA. DZIĘKUJEMY ZA SKORZYSTANIE Z NASZEJ APLIKACJI. ^^
 Open PS2 Loader %s
-Ustawienia skórki
-Ustawienia IP
-Zapisz zmiany
+"X" Zapisz zmiany
 "O" Powrót
-Wolne przewijanie
-Normalne przewijanie
-Szybkie przewijanie
-Dynamiczne menu
-Statyczne menu
-Konfiguruj skórkę
-Ustawienia sieci
-Wybierz język
-Nie znaleziono gier
-Jeszcze niedostępne
+Konfiguracja sieci
+<brak wartości>
 Ustawienia zostały zapisane...
-Wystapił błąd przy zapisie ustawień!
+Błąd przy zapisywaniu ustawień!
 Wyjście
 Ustawienia
 Gry z USB
 Gry z HDD
 Gry przez sieć
 Programy
-Skórka
+Skórki
 Język
-Język : Polski
-Uruchom Sieć
-Ładowanie z sieci: %d
 Błąd podczas uruchamiania sieci
-Automatyczne uruchamianie sieci
 Włączone
 Wyłączone
 Ok
 Usuń wszystkie ustawienia
 Usunięto wszystkie klucze dla gry
 Przewijanie
-Rodzaj menu
 Powoli
 Normalnie
 Szybko
-Statycznie
-Dynamicznie
 Domyślne menu
 Uruchom z płyty
-Proszę czekać
+Proszę czekać...
 Błąd podczas odczytywania Game ID
-Użyj twardego dysku
-Autostart twardego dysku
-Uruchom twardy dysk
 Automatyczne sortowanie
 Wystąpił błąd podczas wczytywania pliku językowego
 Wyłącz kolory Debug
 Nie wykryto podłączonego kontrolera, oczekiwanie...
-Włącz Cover Arty
-Szerokokątny ekran
+Włącz pokazywanie okładek (Cover Art)
+Szerokokątny ekran
+Wyłącz zasilanie
+Wczytywanie ustawień
+Zapisywanie ustawień
+Uruchom urządzenie
+Tryb uruchamiania urządzeń USB
+Tryb uruchamiania dysku twardego
+Tryb uruchamiania sieci
+Tryb uruchamiania programów
+Automatyczny
+Ręczny
+Uruchom serwer HDL
+Uruchamianie serwera HDL...
+Serwer HDL Uruchomiony... Wciśnij "O" by zatrzymać
+Wciśnij "X" aby zakończyć serwer HDL
+Wyłączanie serwera HDL...
+Wyjście do
+Kolor tła
+Kolor tekstu
+IP
+Maska
+Brama
+Port
+Udostępnij
+Użytkownik
+Hasło
+<nie wybrane>
+"X" Zatwierdź
+Wybrana gra będzie usunięta, kontynuować ?
+Zmień nazwę
+Usuń
+Uruchom
+Ustawienia ekranu
+Pozwól na usuwanie i zmianę nazwy
+Sprawdź fragmentację dysku USB
+Zapamiętaj ostatnio uruchomioną grę
+Błąd: Gra jest zdefragmentowana
+Błąd: Nie można uruchomić gry
+Test
+Zostaw puste dla autoryzacji konta GOŚĆ.
+Załaduj alternatywne jądro
+Alternatywny sposób odczytu danych
+Uwolnij Syscalls
+0 PSS mode
+Wyłącz obsługę DVD-DL
+Wyłącz IGR
+Zmniejsz bufor cdvdfsv
+Ukryj moduł dev9
+Alternatywna kombinacja IGR
+Zmiana rozmiaru wymusi ponowne formatowanie VMC
+Stwórz
+Modyfikuj
+Anuluj
+Resetuj
+Użyj domyślnych
+Konfiguruj VMC
+Nazwa
+Rozmiar
+Stan
+Postęp
+Plik VMC już istnieje
+Niewłaściwy plik VMC, nieprawidłowy rozmiar
+Plik VMC musi zostać utworzony
+Błąd z plikiem VMC, kontynuować z fizyczną karta pamięci ?

File lng/lang_Portuguese.lng

View file
+# translation by cegazza <ceg85@bol.com.br>
 Portuguese
-               BEM-VINDO AO OPEN PS2 LOADER. CÓDIGO PRINCIPAL BASEADO NO CÓDIGO FONTE DO HD PROJECT <http://psx-scene.com> ADAPTAÇÃO PARA O FORMATO USB ADVANCE E INTERFACE GRÁFICA INICIAL POR IFCARO <http://ps2dev.ifcaro.net> GRANDE PARTE DO NÚCLEO DO PROGRAMA É FEITO POR JIMMIKAELKAEL. TODOS INCREMENTOS DA INTERFACE GRÁFICA SÃO FEITOS POR VOLCA. OBRIGADO POR UTILIZAR NOSSO PROGRAMA ^^
+               BEM VINDO AO OPEN PS2 LOADER. CÓDIGO PRINCIPAL BASEADO NO CÓDIGO FONTE DO HD PROJECT <http://psx-scene.com> ADAPTADO AO FORMATO USB ADVANCE E INTERFACE GRÁFICA INICIAL POR IFCARO <http://ps2dev.ifcaro.net> A MAIOR PARTE DO NÚCLEO DO CARREGADOR FOI FEITA POR JIMMIKAELKAEL. TODAS AS MELHORAS NA INTERFACE FORAM FEITAS POR VOLCA. OBRIGADO POR USAR NOSSO PROGRAMA.
 Open PS2 Loader %s
-Configuração de IP
-Salvar alterações
-O Voltar
+Salvar mudanças
+O Volta
 Configurar rede
-Sem Items
-Opções salvas...
-Erro guardando opções!
+<sem valores>
+Definições salvadas...
+Erro ao salvar definições!
 Sair
-Opções
-Jogos via USB
-Jogos via HDD
-Jogos via rede
+Definições
+Jogos por USB
+Jogos por HDD
+Jogos por Rede
 Aplicativos
-Tema
+Temas
 Idioma
 Erro ao iniciar rede
-Ligado
-Desligado
-Ok
-Opções de compatibilidade
-Remover todas configurações
-Todas entradas do jogo removidas
+Ativado
+Desativado
+Aceitar
+Definições do jogo
+Remover todas as definições
+Removidas todas as definições para o jogo
 Rolagem
 Lento
 Médio
 Rápido
+Menu padrão
+Carregar do disco
+Por favor espere
+Erro ao carregar a ID do jogo
+Ordenar automaticamente
+Erro ao carregar arquivo de idioma
+Desativar depuração de cores
+Controle não detectado, esperando...
+Habilitar arte de capas (Cover art)
+Wide screen
+Desligar PS2
+Carregando configurações
+Salvando configurações
+Iniciar dispositivo
+Modo de inicio para dispositivos USB
+Modo de inicio para dispositivos HDD
+Modo de inicio para dispositivos ETH
+Modo de inicio para Aplicativos
+Automático
+Manual
+Iniciar servidor HDL
+Servidor HDL iniciando...
+Servidor HDL conectado...Aperte [O] para parar
+Aperte[X] para fechar o servidor HDL
+Fechando servidor HDL
+Sair para
+Cor de fundo
+Cor de texto
+Endereço IP
+Máscara de sub rede
+Gateway padrão
+Porta
+Compartilhar
+Usuário
+Senha
+<não usado>
+X Confirmar
+O item será permanentemente apagado, continuar?
+Renomear
+Deletar
+Iniciar
+Definições de tela
+Habilitar operações Deletar e Renomear
+Checar fragmentação em jogos USB
+Lembrar último jogo jogado
+Erro, o jogo está fragmentado
+Erro, não foi possível iniciar o item
+Teste
+Deixar vazio para identificação como convidado (GUEST)
+Carregar núcleo alternativo
+Método alternativo de leitura de dados
+Desativar chamadas do sistema
+Pular videos PSS
+Desabilitar suporte à DVD-DL
+Desabilitar IGR
+Buffer cdvdfsv reduzido
+Esconder módulo dev9
+Combinação IGR alternativa
+Alterar o tamanho irá reformatar o VMC
+Criar
+Modificar
+Abortar
+Resetar
+Usar genérico
+Configurar VMC
+Nome
+Tamanho
+Estado
+Progresso
+Arquivo VMC já existe
+Arquivo VMC inválido, o tamanho está incorreto
+Arquivo VMC precisa ser criado
+Erro com arquivo VMC, continuar com MC físico?

File lng/lang_Russian.lng

View file
-Russian
-               Добро пожаловать в программу OPEN PS2 LOADER. Основной код базирован на исходном коде программы HD Project <http://psx-scene.com> Адаптация к формату USB ADVANCE и начальный графический интерфейс выполнены IFCARO <http://ps2dev.ifcaro.net> Большинство кода написанно JIMMIKAELKAEL. Все графические улучшения проделаны VOLCA. Спасибо Вам за использование нашей программы!
-Open PS2 Loader %s
-Настройка темы
-Настройка протокола IP
-Сохранить изменения
-O Назад
-Медленный скроллинг
-Нормальный скроллинг
-Быстрый скроллинг
-Динамическое меню
-Статическое меню
-Настроить тему
-Настройки сети
-Выбрать язык
-Контент отсутствует
-Пока недоступно
-Настройки сохранены успешно...
-Ошибка записи настроек!
-Выход
-Настройки
-Игры с USB - накопителя
-игры с HDD
-Игры с сетевого хранилища
-Приложения
-Тема
-Язык
-Язык: Русский
-Запуск сети
-Загрузка сети: %d
-Ошибка запуска сети
-Автоматический запуск сети
-Включить
-Выключить
-OK
-Настройки совместимости
-Очистить все настройки
-Убрать все настройки для игры
-Прокрутка
-Тип меню
-Медленный
-Средний
-Быстрый
-Статическое
-Динамическое
+# translation by RUT Dark Ronin 
+Russian
+               Добро пожаловать в программу OPEN PS2 LOADER. Основной код проекта выполнен на основе HD Project <http://psx-scene.com> Адаптирование к формату USB Advance и первичный интерфейс выполнены IFCARO <http://ps2dev.ifcaro.net> Большая часть кода ядра написана гением - JIMMIKAELKAEL. Все улучшения по части интерфейса, структуры и внешнего вида выполнены VOLCA. Благодарим Вас за внимание и использование нашей программы ^^
+Open PS2 Loader %s
+Сохранение настроек
+O Назад
+Настройка сети
+<пусто>
+Сохранение настроек...
+Ошибка записи настроек!
+Выход
+Настройки
+Игры с USB - носителя
+Игры с внутреннего жесткого диска
+Игры с сетевого сервера
+Приложения
+Темы
+Язык
+Ошибка запуска сети
+Включено
+Выключено
+Ok
+Настройки совместимости
+Очистить все настройки
+Все настройки для игры очищены!
+Прокрутка
+Медленная
+Нормальная
+Быстрая
+Меню по-умолчанию
+Загрузка с диска
+Пожалуйста, подождите
+Ошибка загрузки ID игры
+Автоматическая сортировка
+Ошибка загрузки языкового файла
+Отключить дебаг-цвета при загрузке
+Контроллер не найден, ожидайте...
+Задействовать обложки к играм
+Широкий экран
+Выключение консоли
+Загрузка настроек
+Сохранение настроек
+Запуск устройства
+Зежим запуска USB
+Режим запуска HDD
+Режим запуска сети
+Режим запуска приложений
+Автоматически
+Вручную
+Запуск сервера HDL
+Сервер HDL запускается...
+Сервер HDL работает... Нажмите [O] для остановки
+Нажмите [X] , чтобы выключить HDL-сервер
+Сервер HDL выгружается...
+Выход в
+Цвет заднего фона
+Цвет текста
+IP адрес
+Маска подсети
+Основной шлюз
+Порт
+Имя общего ресурса
+Пользователь
+Пароль
+<Не установлено>
+X Подтвердить
+Объект будет немедленно удален. Продолжить?
+Переименовать
+Удалить
+Запустить
+Настройки экрана
+Задействовать переименование и удаление
+Проверять фрагментированность игр с USB
+Запоминать последнюю игру
+Ошибка, игра фрагментирована!
+Ошибка, объект не может быть запущен!
+Проверка
+Оставьте пустым для гостевого доступа.
+Загрузка альтернативного ядра
+Альтернативный метод чтения
+Анхук вызовов системных функций
+Режим 0 PSS
+Выключить поддержку DVD-DL
+Выключить IGR
+Уменьшеный cdvdfsv-буфер
+Спрятать модуль dev9
+Альтернативная комбинация IGR
+При изменении размера, VMC переформатируется 
+Создать
+Изменить
+Отменить
+Сбросить
+Использовать общее
+Настройка VMC (Виртуальная карта памяти)
+Имя
+Размер
+Состояние
+Прогрессия
+Файл VMC существует
+Ошибочный файл VMC, неправильный размер 
+Необходимо создать VMC-файл
+Ошибка в работе VMC, продолжить с реальной картой памяти?

File lng/lang_Spanish.lng

View file
 # translation by El_Patas <el_patas69@hotmail.com>
 Spanish
-               BIENVENIDO A OPEN PS2 LOADER. EL CÓDIGO PRINCIPAL ESTA BASADO EN EL DE HD PROJECT <http://psx-scene.com> ADAPTADO AL FORMATO DE USB ADVANCE E INTERFAZ GRÁFICA INICIAL POR IFCARO <http://ps2dev.ifcaro.net> LA MAYOR PARTE DEL NÚCLEO DEL CARGADOR ES REALIZADA POR JIMMIKAELKAEL. TODAS LAS MEJORAS EN LA INTERFAZ SON REALIZADAS POR VOLCA. GRACIAS POR USAR NUESTRO PROGRAMA ^^
+               BIENVENIDO AL OPEN PS2 LOADER. EL CÓDIGO PRINCIPAL ESTA BASADO EN EL DEL HD PROJECT <http://psx-scene.com> ADAPTADO AL FORMATO DEL USB ADVANCE E INTERFAZ GRÁFICA INICIAL POR IFCARO <http://ps2dev.ifcaro.net> LA MAYOR PARTE DEL NÚCLEO DEL CARGADOR ES REALIZADA POR JIMMIKAELKAEL. TODAS LAS MEJORAS EN LA INTERFAZ SON REALIZADAS POR VOLCA. GRACIAS POR USAR NUESTRO PROGRAMA ^^
 Open PS2 Loader %s
 Guardar cambios
 O Atrás
 Activado
 Desactivado
 Aceptar
-Opciones de compatibilidad
-Borrar todas las opciones
-Opciones para el juego borradas
+Preferencias juego
+Borrar todas las preferencias
+Preferencias para el juego borradas
 Desplazamiento
 Lento
 Medio
 Manual
 Iniciar servidor HDL
 Iniciando servidor HDL...
-Servidor HDL conectado... [O][X] Para desconectar
-Pulsa [X] para cerrar HDL...
+Servidor HDL conectado... Pulsa [O] para desconectar
+Pulsa [X] para cerrar servidor HDL...
 Cerrando servidor HDL...
 Salida hacia
 Color de fondo 
 Unidad o carpeta compartida
 Cuenta de usuario compartida
 Contraseña
-<sin definir>
+<sin definir>
+X Aceptar
+El objeto se borrará definitivamente, ¿continuar?
+Renombrar
+Borrar
+Iniciar
+Preferencias de pantalla
+Mostrar las operaciones de Borrar y Renombrar
+Comprobar fragmentación de juego USB
+Recordar último juego jugado
+Error, el juego está fragmentado
+Error, no se pudo iniciar el objeto
+Test
+Dejar vacío para autentificar como GUEST
+Cargar núcleo alternativo
+Método de lectura de datos alternativo
+Remover llamadas del sistema
+Saltar lectura archivos PSS
+Sin soporte DVD-DL
+Sin soporte IGR
+Buffer cdvdfsv reducido
+Ocultar módulo dev9
+Combinación de IGR alternativa
+Cambiar el tamaño reformateará la VMC
+Crear
+Modificar
+Abortar
+Reiniciar
+Usar genérica
+Configurar VMC
+Nombre
+Tamaño
+Estado
+Progreso
+Archivo VMC ya existe
+Archivo VMC inválido, el tamaño es incorrecto
+El archivo VMC debe ser creado
+Error con el archivo VMC, ¿continuar con la MC física?

File modules/iopcore/cdvdman/cdvdman.c

View file
 	// zero pad the string to be sure it does not overflow
 	g_pc_share[32] = '\0';
 
-	// Then open a session and a tree connect on the share resource
+	// open a session
+	smb_SessionSetupAndX();
+
+	// Then tree connect on the share resource
 	sprintf(tmp_str, "\\\\%s\\%s", g_pc_ip, g_pc_share);
-	smb_SessionSetupTreeConnect(tmp_str);
+	smb_TreeConnectAndX(tmp_str);
 
 	char *path_str = "%s.%02x";
 	char *game_name = NULL;

File modules/iopcore/cdvdman/smb.c

View file
 	u8	smbWordcount;		// 36
 	u16	ByteCount;		// 37
 	u8	DialectFormat;		// 39
-	char	DialectName[64];	// 40
+	char	DialectName[0];		// 40
 } __attribute__((packed));
 
 struct NegociateProtocolResponse_t {
 	u32	reserved;		// 55
 	u32	Capabilities;		// 59
 	u16	ByteCount;		// 63
-	u8	ByteField[1024];	// 65
+	u8	ByteField[0];		// 65
 } __attribute__((packed));
 
 struct SessionSetupAndXResponse_t {
 	u16	smbAndxOffset;		// 39
 	u16	Action;			// 41
 	u16	ByteCount;		// 43
-	u8	ByteField[1024];	// 45
+	u8	ByteField[0];		// 45
 } __attribute__((packed));
 
-struct TreeConnectRequest_t {
-	u8	smbWordcount;
-	u8	smbAndxCmd;
-	u8	smbAndxReserved;
-	u16	smbAndxOffset;
-	u16	Flags;
-	u16	PasswordLength;
-	u16	ByteCount;
-	u8	ByteField[1024];
+struct TreeConnectAndXRequest_t {
+	struct SMBHeader_t smbH;	// 0
+	u8	smbWordcount;		// 36
+	u8	smbAndxCmd;		// 37
+	u8	smbAndxReserved;	// 38
+	u16	smbAndxOffset;		// 39
+	u16	Flags;			// 41
+	u16	PasswordLength;		// 43
+	u16	ByteCount;		// 45
+	u8	ByteField[0];		// 47
+} __attribute__((packed));
+
+struct TreeConnectAndXResponse_t {
+	struct SMBHeader_t smbH;	// 0
+	u8	smbWordcount;		// 36
+	u8	smbAndxCmd;		// 37
+	u8	smbAndxReserved;	// 38
+	u16	smbAndxOffset;		// 39
+	u16	OptionalSupport;	// 41
+	u16	ByteCount;		// 43
 } __attribute__((packed));
 
 struct OpenAndXRequest_t {
 	u32	AllocationSize;		// 55
 	u32	reserved[2];		// 59
 	u16	ByteCount;		// 67
-	u8	Name[1024];		// 69
+	u8	ByteField[0];		// 69
 } __attribute__((packed));
 
 struct OpenAndXResponse_t {
 }
 
 //-------------------------------------------------------------------------
-int smb_SessionSetupTreeConnect(char *share_name)
+int smb_SessionSetupAndX(void)
 {
 	struct SessionSetupAndXRequest_t *SSR = (struct SessionSetupAndXRequest_t *)SMB_buf;
-	register int i, offset, ss_size, CF;
+	register int i, offset, CF;
 	int AuthType = NTLM_AUTH;
 	int password_len = 0;
 
-lbl_sstc:
+lbl_session_setup:
 	mips_memset(SMB_buf, 0, sizeof(SMB_buf));
 
 	CF = server_specs.StringsCF;
 	if (CF == 2)
 		SSR->smbH.Flags2 |= SMB_FLAGS2_UNICODE_STRING;
 	SSR->smbWordcount = 13;
+	SSR->smbAndxCmd = SMB_COM_NONE;		// no ANDX command
 	SSR->MaxBufferSize = server_specs.MaxBufferSize > 65535 ? 65535 : (u16)server_specs.MaxBufferSize;
 	SSR->MaxMpxCount = server_specs.MaxMpxCount >= 2 ? 2 : (u16)server_specs.MaxMpxCount;
 	SSR->VCNumber = 1;
 
 	SSR->ByteCount = offset;
 
-	SSR->smbAndxCmd = SMB_COM_TREE_CONNECT_ANDX;
-	SSR->smbAndxOffset = 61 + offset;
-	ss_size = offset;
+	rawTCP_SetSessionHeader(61+offset);
+	GetSMBServerReply();
 
-	struct TreeConnectRequest_t *TCR = (struct TreeConnectRequest_t *)&SSR->ByteField[offset];
+	struct SessionSetupAndXResponse_t *SSRsp = (struct SessionSetupAndXResponse_t *)SMB_buf;
+
+	// check sanity of SMB header
+	if (SSRsp->smbH.Magic != SMB_MAGIC)
+		return -1;
+
+	// check there's no auth failure
+	if ((server_specs.SecurityMode == SERVER_USER_SECURITY_LEVEL)
+		&& ((SSRsp->smbH.Eclass | (SSRsp->smbH.Ecode << 16)) == STATUS_LOGON_FAILURE)
+		&& (AuthType == NTLM_AUTH)) {
+		AuthType = LM_AUTH;
+		goto lbl_session_setup;
+	}
+
+	// check there's no error (NT STATUS error type!)
+	if ((SSRsp->smbH.Eclass | SSRsp->smbH.Ecode) != STATUS_SUCCESS)
+		return -1000;
+
+	// keep UID
+	UID = SSRsp->smbH.UID;
+
+	return 1;
+}
+
+//-------------------------------------------------------------------------
+int smb_TreeConnectAndX(char *ShareName)
+{
+	struct TreeConnectAndXRequest_t *TCR = (struct TreeConnectAndXRequest_t *)SMB_buf;
+	register int i, offset, CF;
+	int AuthType = NTLM_AUTH;
+	int password_len = 0;
+
+	mips_memset(SMB_buf, 0, sizeof(SMB_buf));
+
+	CF = server_specs.StringsCF;
+
+	TCR->smbH.Magic = SMB_MAGIC;
+	TCR->smbH.Cmd = SMB_COM_TREE_CONNECT_ANDX;
+	TCR->smbH.Flags = SMB_FLAGS_CASELESS_PATHNAMES;
+	TCR->smbH.Flags2 = SMB_FLAGS2_KNOWS_LONG_NAMES | SMB_FLAGS2_32BIT_STATUS;
+	if (CF == 2)
+		TCR->smbH.Flags2 |= SMB_FLAGS2_UNICODE_STRING;
+	TCR->smbH.UID = UID;
 	TCR->smbWordcount = 4;
-	TCR->smbAndxCmd = SMB_COM_NONE;
+	TCR->smbAndxCmd = SMB_COM_NONE;		// no ANDX command
 
 	// Fill ByteField
 	offset = 0;
 	if ((CF == 2) && (!(password_len & 1)))
 		offset += 1;				// pad needed only for unicode as aligment fix is password len is even
 
-	for (i = 0; i < strlen(share_name); i++) {
-		TCR->ByteField[offset] = share_name[i];	// add Share name
+	for (i = 0; i < strlen(ShareName); i++) {
+		TCR->ByteField[offset] = ShareName[i];	// add Share name
 		offset += CF;
 	}
 	offset += CF;					// null terminator
 
 	TCR->ByteCount = offset;
 
-	rawTCP_SetSessionHeader(72+ss_size+offset);
+	rawTCP_SetSessionHeader(43+offset);
 	GetSMBServerReply();
 
-	struct SessionSetupAndXResponse_t *SSRsp = (struct SessionSetupAndXResponse_t *)SMB_buf;
+	struct TreeConnectAndXResponse_t *TCRsp = (struct TreeConnectAndXResponse_t *)SMB_buf;
 
 	// check sanity of SMB header
-	if (SSRsp->smbH.Magic != SMB_MAGIC)
+	if (TCRsp->smbH.Magic != SMB_MAGIC)
 		return -1;
 
-	// check there's no auth failure
-	if ((server_specs.SecurityMode == SERVER_USER_SECURITY_LEVEL)
-		&& ((SSRsp->smbH.Eclass | (SSRsp->smbH.Ecode << 16)) == STATUS_LOGON_FAILURE)
-		&& (AuthType == NTLM_AUTH)) {
-		AuthType = LM_AUTH;
-		goto lbl_sstc;
-	}
-
 	// check there's no error (NT STATUS error type!)
-	if ((SSRsp->smbH.Eclass | SSRsp->smbH.Ecode) != STATUS_SUCCESS)
+	if ((TCRsp->smbH.Eclass | TCRsp->smbH.Ecode) != STATUS_SUCCESS)
 		return -1000;
 
-	// keep UID & TID
-	UID = SSRsp->smbH.UID;
-	TID = SSRsp->smbH.TID;
+	// keep TID
+	TID = TCRsp->smbH.TID;
 
 	return 1;
 }
 int smb_OpenAndX(char *filename, u16 *FID, int Write)
 {
 	struct OpenAndXRequest_t *OR = (struct OpenAndXRequest_t *)SMB_buf;
-	register int length;
+	register int i, offset, CF;
 
 	WAITIOSEMA(io_sema);
 
 	mips_memset(SMB_buf, 0, sizeof(SMB_buf));
 
+	CF = server_specs.StringsCF;
+
 	OR->smbH.Magic = SMB_MAGIC;
 	OR->smbH.Cmd = SMB_COM_OPEN_ANDX;
 	OR->smbH.Flags = SMB_FLAGS_CANONICAL_PATHNAMES; //| SMB_FLAGS_CASELESS_PATHNAMES;
 	OR->smbH.Flags2 = SMB_FLAGS2_KNOWS_LONG_NAMES;
+	if (CF == 2)
+		OR->smbH.Flags2 |= SMB_FLAGS2_UNICODE_STRING;
 	OR->smbH.UID = UID;
 	OR->smbH.TID = TID;
 	OR->smbWordcount = 15;
 	OR->AccessMask = (Write && (SMBWRITE)) ? 2 : 0;
 	OR->FileAttributes = (Write && (SMBWRITE)) ? EXT_ATTR_NORMAL : EXT_ATTR_READONLY;
 	OR->CreateOptions = 1;
-	length = strlen(filename);
-	OR->ByteCount = length+1;
-	strcpy((char *)OR->Name, filename);
 
-	rawTCP_SetSessionHeader(66+length);
+	offset = 0;
+	if (CF == 2)
+		offset++;				// pad needed only for unicode as aligment fix
+
+	for (i = 0; i < strlen(filename); i++) {
+		OR->ByteField[offset] = filename[i];	// add filename
+		offset += CF;
+	}
+	offset += CF;
+
+	OR->ByteCount = offset;
+
+	rawTCP_SetSessionHeader(66+offset);
 	GetSMBServerReply();
 
 	struct OpenAndXResponse_t *ORsp = (struct OpenAndXResponse_t *)SMB_buf;

File modules/iopcore/cdvdman/smb.h

View file
 int rawTCP_GetSessionHeader(void); 	// Read Session Service header
 
 int smb_NegociateProtocol(char *SMBServerIP, int SMBServerPort, char *Username, char *Password); // process a Negociate Procotol message
-int smb_SessionSetupTreeConnect(char *share_name); 			// process a Session Setup message, for NT LM 0.12 dialect, Non Extended Security negociated
+int smb_SessionSetupTreeConnect(char *share_name); 
+int smb_SessionSetupAndX(void);	// process a Session Setup message, for NT LM 0.12 dialect, Non Extended Security negociated
+int smb_TreeConnectAndX(char *ShareName);
 int smb_OpenAndX(char *filename, u16 *FID, int Write); 					// process a Open AndX message
 int smb_ReadFile(u16 FID, u32 offsetlow, u32 offsethigh, void *readbuf, u16 nbytes);
 int smb_WriteFile(u16 FID, u32 offsetlow, u32 offsethigh, void *writebuf, u16 nbytes);

File modules/network/smbman/smb.c

View file
 	u32	ImpersonationLevel;	// 80
 	u8	SecurityFlags;		// 84
 	u16	ByteCount;		// 85
-	char	Name[0];		// 87
+	char	ByteField[0];		// 87
 } __attribute__((packed));
 
 struct NTCreateAndXResponse_t {		// size = 107
 	u32	AllocationSize;		// 55
 	u32	reserved[2];		// 59
 	u16	ByteCount;		// 67
-	u8	Name[0];		// 69
+	u8	ByteField[0];		// 69
 } __attribute__((packed));
 
 struct OpenAndXResponse_t {
 int smb_NTCreateAndX(int UID, int TID, char *filename, s64 *filesize, int mode)
 {
 	struct NTCreateAndXRequest_t *NTCR = (struct NTCreateAndXRequest_t *)SMB_buf;
-	register int r, length;
+	register int r, i, offset, length, CF;
 
 	memset(SMB_buf, 0, sizeof(SMB_buf));
 
+	CF = server_specs.StringsCF;
+
 	NTCR->smbH.Magic = SMB_MAGIC;
 	NTCR->smbH.Cmd = SMB_COM_NT_CREATE_ANDX;
 	NTCR->smbH.Flags = SMB_FLAGS_CANONICAL_PATHNAMES; //| SMB_FLAGS_CASELESS_PATHNAMES;
 	NTCR->smbH.Flags2 = SMB_FLAGS2_KNOWS_LONG_NAMES;
+	if (CF == 2)
+		NTCR->smbH.Flags2 |= SMB_FLAGS2_UNICODE_STRING;
 	NTCR->smbH.UID = (u16)UID;
 	NTCR->smbH.TID = (u16)TID;
 	NTCR->smbWordcount = 24;
 	NTCR->smbAndxCmd = SMB_COM_NONE;	// no ANDX command
-	length = strlen(filename);
-	NTCR->NameLength = length;
 	NTCR->AccessMask = ((mode & O_RDWR) == O_RDWR || (mode & O_WRONLY)) ? 0x2019f : 0x20089;
 	NTCR->FileAttributes = ((mode & O_RDWR) == O_RDWR || (mode & O_WRONLY)) ? EXT_ATTR_NORMAL : EXT_ATTR_READONLY;
 	NTCR->ShareAccess = 0x01; // Share in read mode only
 		NTCR->CreateDisposition = 0x05;
 	NTCR->ImpersonationLevel = 2;
 	NTCR->SecurityFlags = 0x03;
-	NTCR->ByteCount = length+1;
-	strcpy(NTCR->Name, filename);
 
-	rawTCP_SetSessionHeader(84+length);
+	offset = 0;
+	if (CF == 2)
+		offset++;				// pad needed only for unicode as aligment fix
+
+	length = strlen(filename);
+	for (i = 0; i < length; i++) {
+		NTCR->ByteField[offset] = filename[i];	// add filename
+		offset += CF;
+	}
+	offset += CF;
+
+	NTCR->NameLength = length;
+	if (CF == 2)
+		NTCR->NameLength = NTCR->NameLength << 1;
+	NTCR->ByteCount = offset;
+
+	rawTCP_SetSessionHeader(84+offset);
 	r = GetSMBServerReply();
 	if (r <= 0)
 		return -3;
 	// NT SMB commands set.
 
 	struct OpenAndXRequest_t *OR = (struct OpenAndXRequest_t *)SMB_buf;
-	register int r, length;
+	register int r, i, offset, CF;
 
 	if (server_specs.SupportsNTSMB)
 		return smb_NTCreateAndX(UID, TID, filename, filesize, mode);
 
 	memset(SMB_buf, 0, sizeof(SMB_buf));
 
+	CF = server_specs.StringsCF;
+
 	OR->smbH.Magic = SMB_MAGIC;
 	OR->smbH.Cmd = SMB_COM_OPEN_ANDX;
 	OR->smbH.Flags = SMB_FLAGS_CANONICAL_PATHNAMES; //| SMB_FLAGS_CASELESS_PATHNAMES;
 	OR->smbH.Flags2 = SMB_FLAGS2_KNOWS_LONG_NAMES;
+	if (CF == 2)
+		OR->smbH.Flags2 |= SMB_FLAGS2_UNICODE_STRING;
 	OR->smbH.UID = (u16)UID;
 	OR->smbH.TID = (u16)TID;
 	OR->smbWordcount = 15;
 		OR->CreateOptions |= 0x02;
 	else
 		OR->CreateOptions |= 0x01;
-	length = strlen(filename);
-	OR->ByteCount = length+1;
-	strcpy((char *)OR->Name, filename);
-	
-	rawTCP_SetSessionHeader(66+length);
+
+	offset = 0;
+	if (CF == 2)
+		offset++;				// pad needed only for unicode as aligment fix
+
+	for (i = 0; i < strlen(filename); i++) {
+		OR->ByteField[offset] = filename[i];	// add filename
+		offset += CF;
+	}
+	offset += CF;
+
+	OR->ByteCount = offset;
+
+	rawTCP_SetSessionHeader(66+offset);
 	r = GetSMBServerReply();
 	if (r <= 0)
 		return -3;

File modules/network/smbman/smb_fio.c

View file
    		r = -EIO;
 		goto io_unlock;
 	}
-	if (!info.IsDirectory) {
+	if (!(info.FileAttributes & EXT_ATTR_DIRECTORY)) {
 		r = -ENOTDIR;
 		goto io_unlock;
 	}
 		goto io_unlock;
 	}
 
-	if (!info.IsDirectory) {
+	if (!(info.FileAttributes & EXT_ATTR_DIRECTORY)) {
    		r = -ENOTDIR;
 		goto io_unlock;
 	}
 		fh->position = 0;
 
 		strncpy(fh->name, path, 255);
+		if (fh->name[strlen(fh->name)-1] != '\\')
+			strcat(fh->name, "\\");
 		strcat(fh->name, "*");
 
 		r = 0;	
 			goto io_unlock;
 		}
 
-		if (!info.IsDirectory) {
+		if (!(info.FileAttributes & EXT_ATTR_DIRECTORY)) {
 	   		r = -ENOTDIR;
 			goto io_unlock;
 		}

File src/ethsupport.c

View file
 #include "include/gui.h"
 #include "include/supportbase.h"
 #include "include/ethsupport.h"
+#include "include/util.h"
 #include "include/themes.h"
 #include "include/textures.h"
 #include "include/ioman.h"
+#include "include/system.h"
 #include "include/smbman.h"
-#include "include/system.h"
 
 extern void *smb_cdvdman_irx;
 extern int size_smb_cdvdman_irx;
 
 	// update Themes
 	char path[32];
-	sprintf(path, "%s\\THM\\", ethPrefix);
+	sprintf(path, "%sTHM", ethPrefix);
 	thmAddElements(path, "\\");
+
+#ifdef VMC
+	sprintf(path, "%sVMC", ethPrefix);
+	checkCreateDir(path);
+#endif
 }
 
 void ethInit(void) {
 		fio_stat_t stat;
 		char path[64];
 
-		snprintf(path, 64, "%sCD\\", ethPrefix);
+		snprintf(path, 64, "%sCD", ethPrefix);
 		fioGetstat(path, &stat);
 		if (memcmp(ethModifiedCDPrev, stat.mtime, 8)) {
 			memcpy(ethModifiedCDPrev, stat.mtime, 8);
 			result = 1;
 		}
 
-		snprintf(path, 64, "%sDVD\\", ethPrefix);
+		snprintf(path, 64, "%sDVD", ethPrefix);
 		fioGetstat(path, &stat);
 		if (memcmp(ethModifiedDVDPrev, stat.mtime, 8)) {
 			memcpy(ethModifiedDVDPrev, stat.mtime, 8);
 	if (gNetworkStartup != 0)
 		return 0;
 	
-	sbReadList(&ethGames, ethPrefix, "\\", &ethULSizePrev, &ethGameCount);
+	sbReadList(&ethGames, ethPrefix, &ethULSizePrev, &ethGameCount);
 	return ethGameCount;
 }
 
 	configGetVMC(game->startup, vmc[0], ETH_MODE, 0);
 	configGetVMC(game->startup, vmc[1], ETH_MODE, 1);
 
-	if(!vmc[0][0] && !vmc[1][0]) return 0;  // skip if both empty
+	for(i=0; i<2; i++) {
+		if(!vmc[i][0]) // skip if empty
+			continue;
 
-	for(i=0; i<2; i++) {
 		memset(&smb_vmc_infos, 0, sizeof(smb_vmc_infos_t));
 		memset(&vmc_superblock, 0, sizeof(vmc_superblock_t));
 
 
 static int ethGetArt(char* name, GSTEXTURE* resultTex, const char* type, short psm) {
 	char path[64];
-	sprintf(path, "%sART\\\\%s_%s", ethPrefix, name, type);
+	sprintf(path, "%sART\\%s_%s", ethPrefix, name, type);
 	return texDiscoverLoad(resultTex, path, -1, psm);
 }
 

File src/gui.c

View file
 	} else if(getKey(KEY_DOWN)){
 		menuNextV();
 	} else if(getKey(KEY_L1)) {
-		int i;
-		for (i = 0; i < gTheme->displayedItems; ++i)
-			menuPrevV();
+		menuPrevPage();
 	} else if(getKey(KEY_R1)){
-		int i;
-		for (i = 0; i < gTheme->displayedItems; ++i)
-			menuNextV();
+		menuNextPage();
+	} else if (getKeyOn(KEY_L2)) { // home
+		menuFirstPage();
+	} else if (getKeyOn(KEY_R2)) { // end
+		menuLastPage();
 	}
 
 	struct menu_item_t* cur = menuGetCurrent();
 		// reinit main menu - show/hide items valid in the active context
 		guiInitMainMenu();
 		screenHandlerTarget = &menuScreenHandler;
-	} else if (getKeyOn(KEY_L2)) { // home
-		cur->current = cur->submenu;
-	} else if (getKeyOn(KEY_R2)) { // end
-		if (!cur->current)
-			cur->current = cur->submenu;
-			
-		if (cur->current)
-			while (cur->current->next)
-				cur->current = cur->current->next;
 	} else if(getKeyOn(KEY_CROSS)){
 		menuItemExecButton(cur->execCross);
 	} else if(getKeyOn(KEY_TRIANGLE)){
 		} else if (id == 3) {
 			// ipconfig
 			guiShowIPConfig();
-		} else if (id == 7) { // TODO: (Volca) As Izdubar points out, there ought be MNU_ID_something instead of this cryptic numerals...
+		} else if (id == 7) {
 			saveConfig(CONFIG_OPL, 1);
-		} else if (id == 9) { // TODO: should we call opl.shutdown first ?
+		} else if (id == 9) {
 			guiExecExit();
-		} else if (id == 11) { // TODO: should we call opl.shutdown first ?
+		} else if (id == 11) {
 			sysPowerOff();
 		} else {
 			if (gMenuExecHook)

File src/hddsupport.c

View file
 #include "include/gui.h"
 #include "include/supportbase.h"
 #include "include/hddsupport.h"
+#include "include/util.h"
+#include "include/themes.h"
 #include "include/textures.h"
-#include "include/themes.h"
 #include "include/ioman.h"
 #include "include/system.h"
 
 
 	// update Themes
 	char path[32];
-	sprintf(path, "%sTHM/", hddPrefix);
+	sprintf(path, "%sTHM", hddPrefix);
 	thmAddElements(path, "/");
+
+#ifdef VMC
+	sprintf(path, "%sVMC", hddPrefix);
+	checkCreateDir(path);
+#endif
 }
 
 void hddLoadModules(void) {
 
 	fileXioMount(hddPrefix, oplPart, FIO_MT_RDWR); // if this fails, something is really screwed up
 	for(i=0; i<2; i++) {
+		if(!vmc[i][0]) // skip if empty
+			continue;
+
 		memset(&vmc_superblock, 0, sizeof(vmc_superblock_t));
 		hdd_vmc_infos.active = 0;
 

File src/menusys.c

View file
 void menuPrevV() {
 	if (!selected_item)
 		return;
-	
+
 	struct submenu_list_t *cur = selected_item->item->current;
 
 	// if the current item is on the page start, move the page start one page up before moving the item
 		if (selected_item->item->pagestart == cur) {
 			int itms = gTheme->displayedItems + 1; // +1 because the selection will move as well
 
-			while (--itms && selected_item->item->pagestart->prev) {
-				selected_item->item->pagestart = selected_item->item->pagestart->prev;	
-			}
+			while (--itms && selected_item->item->pagestart->prev)
+				selected_item->item->pagestart = selected_item->item->pagestart->prev;
 		}
 	} else
 		selected_item->item->pagestart = cur;
-	
+
 	if(cur && cur->prev) {
 		selected_item->item->current = cur->prev;
 	}
 }
 
+void menuNextPage() {
+	if (!selected_item)
+		return;
+
+	struct submenu_list_t *cur = selected_item->item->pagestart;
+
+	if (cur) {
+		int itms = gTheme->displayedItems + 1;
+		while (--itms && cur->next)
+			cur = cur->next;
+
+		selected_item->item->current = cur;
+	}
+}
+
+void menuPrevPage() {
+	if (!selected_item)
+		return;
+
+	struct submenu_list_t *cur = selected_item->item->pagestart;
+
+	if (cur) {
+		int itms = gTheme->displayedItems + 1;
+		while (--itms && cur->prev)
+			cur = cur->prev;
+
+		selected_item->item->current = cur;
+		selected_item->item->pagestart = cur;
+	}
+}
+
+void menuFirstPage() {
+	if (!selected_item)
+		return;
+
+	selected_item->item->current = selected_item->item->submenu;
+}
+
+void menuLastPage() {
+	if (!selected_item)
+		return;
+
+	struct submenu_list_t *cur = selected_item->item->current;
+
+	if (cur) {
+		while (cur->next)
+			cur = cur->next; // go to end
+
+		selected_item->item->current = cur;
+
+		int itms = gTheme->displayedItems;
+		while (--itms && cur->prev) // and move back to have a full page
+			cur = cur->prev;
+
+		selected_item->item->pagestart = cur;
+	}
+}
+
 struct menu_item_t* menuGetCurrent() {
 	if (!selected_item)
 		return NULL;

File src/supportbase.c

View file
 	return count;
 }
 
-void sbReadList(base_game_info_t **list, const char* prefix, const char* sep, int *fsize, int* gamecount) {
+void sbReadList(base_game_info_t **list, const char* prefix, int *fsize, int* gamecount) {
 	int fd, size, id = 0;
 	size_t count = 0;
 	char path[64];
 	struct game_list_t *dlist_head = NULL;
 	
 	// count iso games in "cd" directory
-	snprintf(path, 64, "%sCD%s", prefix, sep);
+	snprintf(path, 64, "%sCD", prefix);
 	count += scanForISO(path, 0x12, &dlist_head);
 
 	// count iso games in "dvd" directory
-	snprintf(path, 64, "%sDVD%s", prefix, sep);
+	snprintf(path, 64, "%sDVD", prefix);
 	count += scanForISO(path, 0x14, &dlist_head);
         
         

File src/system.c

View file
 extern void *usbd_irx;
 extern int size_usbd_irx;
 
-extern void eeload_patches;
-extern int size_eeload_patches;
-
 #define MAX_MODULES	32
 static void *g_sysLoadedModBuffer[MAX_MODULES];
 
 	*size_irx = size_cdvdfsv_irx;
 }
 
+static void restoreSyscallHandler(void)
+{
+	__asm__ __volatile__ (
+		"addiu 	$a0, $zero, 8\n\t"
+		"lui 	$a1, 0x8000\n\t"
+		"ori 	$a1, $a1, 0x0280\n\t"
+		"addiu 	$v1, $zero, 0x0e\n\t"
+		"syscall\n\t"
+		"nop\n\t"
+	);	
+}
+
 #ifdef VMC
 #define IRX_NUM 11
 #else
 #else
 static void sendIrxKernelRAM(int size_cdvdman_irx, void **cdvdman_irx) { // Send IOP modules that core must use to Kernel RAM
 #endif
+
+	restoreSyscallHandler();
+
 	void *irxtab = (void *)0x80030010;
 	void *irxptr = (void *)0x80030100;
 	irxptr_t irxptr_tab[IRX_NUM];
 	DIntr();
 	ee_kmode_enter();
 
-	*(u32 *)0x80030000 = 0x80030100;
+	*(u32 *)0x80030000 = 0x80030010;
 
 	for (i = 0; i < IRX_NUM; i++) {
 		curIrxSize = irxptr_tab[i].irxsize;
 
 	ee_kmode_exit();
 	EIntr();
-
-	memcpy((void *)(0x000bd000), &eeload_patches, size_eeload_patches);
-	FlushCache(0);
-	FlushCache(2);
-	void (*EELOAD_patch1)()=(void *)(0x000bd1b8);
-	void (*EELOAD_patch2)()=(void *)(0x000bd000);
-	EELOAD_patch1();
-	FlushCache(0);
-	FlushCache(2);
-	EELOAD_patch2();
 }
 
 #ifdef VMC

File src/themes.c

View file
 		memcpy(currTheme->name, name + 4, length);
 		currTheme->name[length - 1] = '\0';
 
-		length = strlen(path) + 1 + strlen(name) + 1;
+		length = strlen(path) + 1 + strlen(name) + 1 + 1;
 		currTheme->filePath = (char*) malloc(length * sizeof(char));
-		sprintf(currTheme->filePath, "%s%s%s", path, name, separator);
+		sprintf(currTheme->filePath, "%s%s%s%s", path, separator, name, separator);
 
 		LOG("Theme found: %s\n", currTheme->filePath);
 
 	// initialize default internal
 	thmLoad(NULL);
 
-	char path[32];
-	sprintf(path, "%s/", gBaseMCDir);
-	thmAddElements(path, "/");
+	thmAddElements(gBaseMCDir, "/");
 }
 
 char* thmGetValue() {

File src/usbsupport.c

View file
 }
 
 static void usbInitModules(void) {
-
 	usbLoadModules();
 
 	// update Themes
 	usbFindPartition(usbPrefix, "ul.cfg");
 	char path[32];
-	sprintf(path, "%sTHM/", usbPrefix);
+	sprintf(path, "%sTHM", usbPrefix);
 	thmAddElements(path, "/");
+
+#ifdef VMC
+	sprintf(path, "%sVMC", usbPrefix);
+	checkCreateDir(path);
+#endif
 }
 
 void usbLoadModules(void) {
 
 static int usbUpdateGameList(void) {
 	usbFindPartition(usbPrefix, "ul.cfg");
-	sbReadList(&usbGames, usbPrefix, "/", &usbULSizePrev, &usbGameCount);
+	sbReadList(&usbGames, usbPrefix, &usbULSizePrev, &usbGameCount);
 	return usbGameCount;
 }