Технические вопросы по INVITESNES

Не запускается,не нашли драйвер, забыли где скачать софт, не ставится драйвер, непонятно как..., ВАМ СЮДА!

Moderators: figura, alex, HardWareMan, aodinets, admin

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Tue Mar 26, 2013 4:41 pm

А как эмуляторы проблему обходят?
Подозреваю что либо пофигу на заголовки, либо фиксят на лету.
Нет, вот, к примеру, как работает zsnes.

Берёт два адреса заголовка (Hi и Lo) и начинают там смотреть ключевые значение, у которых написаны пределы валидности (больше, меньше чего-то, равно чему-то), за каждое значение начисляется баллы, потом сравнивают, кто больше баллов набрал, так и узнает что Hi, а что Lo. Хотя не, если ищется способ определить Hi Lo, то вполне можно взять метод из zsnes'a, не очень трудоёмкий и вполне можно провести на консоли.

Code: Select all

Файл initc.c int InfoScore(unsigned char *Buffer) { int score = valid_reset(Buffer); if (validChecksum(Buffer, 0)) { score += 5; } if (Buffer[CompanyOffset] == 0x33) { score += 3; } if (!Buffer[ROMSizeOffset]) { score += 2; } if ((1 << (Buffer[ROMSizeOffset] - 7)) > 48) { score -= 2; } if ((8 << Buffer[SRAMSizeOffset]) > 1024) { score -= 2; } if (Buffer[CountryOffset] < 14) { score += 2; } if (!AllASCII(Buffer, 20)) { score -= 2; } if (valid_normal_bank(Buffer[BSBankOffset])) { score += 2; } return(score); } void BankCheck() { unsigned char *ROM = (unsigned char *)romdata; infoloc = 0; Interleaved = false; if (NumofBytes < Lo) { romtype = 1; infoloc = 1; //Whatever, we just need a valid location } if (NumofBytes < Hi) { romtype = 1; infoloc = Lo; } if (NumofBytes >= 0x500000) { //Deinterleave if neccesary CheckIntlEHi(ROM); if (EHiHeader(ROM, EHi)) { romtype = 2; infoloc = EHi; } } if (!infoloc) { static bool CommandLineForce2 = false; int loscore, hiscore; //Deinterleave if neccesary CheckIntl1(ROM); loscore = InfoScore(ROM+Lo); hiscore = InfoScore(ROM+Hi); switch(ROM[Lo + BankOffset]) { case 32: case 35: case 48: case 50: loscore += 3; break; } switch(ROM[Hi + BankOffset]) { case 33: case 49: case 53: case 58: hiscore += 3; break; } if (hiscore > loscore) { romtype = 2; infoloc = Hi; } else { romtype = 1; infoloc = Lo; } } }
Часть кода, много чего не указано, но понять в общих чертах можно.
Ну и Масяня немного не прав по способы проверки в эмуляторах.
Last edited by blackbird_ru on Tue Mar 26, 2013 6:23 pm, edited 3 times in total.

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Tue Mar 26, 2013 4:44 pm

Как карту понять в каком режиме запустить игру? HIROM? LOROM? На плате картриджа производителя игры это жестко соеденино, поэтому и на заголовок пофиг.
Не, тут вопрос, твоему карту пофиг на заголовки или нет, если не имеют значения, то сделай опцию отключения проверки валидности и всё.

User avatar
SAMuel
Любитель
Posts: 248
Joined: Tue Aug 02, 2011 2:20 pm
Location: UA Kiev
Contact:

Postby SAMuel » Tue Mar 26, 2013 5:30 pm

Тогда два решения:
1 - сделать отключение проверки заголовков в картридже и посмотреть резщультат.
2 - написать софтинку которая будет проверять ромы и править заголовки.
Atari2600,Atari7800,AtariFS,ZXSpectrum,Dendy,NES,Kenga,GB,GBP,GBC,GBASP,GBA,NDSL,SNES,SMS,N64,GC,Wii,SMD,MD2,SGG,Gopher,DC,MDP,PSP1000,PSP2000,PSP3000,PSPStreet,PS1,PS2,PS3,XBOX,XBOX360,3DO...

SavitarSvit
Полезный чел
Posts: 359
Joined: Mon Dec 17, 2012 10:22 pm

Postby SavitarSvit » Tue Mar 26, 2013 8:57 pm

Тогда два решения:
1 - сделать отключение проверки заголовков в картридже и посмотреть резщультат.
2 - написать софтинку которая будет проверять ромы и править заголовки.
+1, лишь бы все работало. :)
P.S. С хексом я не сталкивался, а разбираться не охота. Буду ждать что смогут сделать светлые головы. :)
SAMuel, есть еще третий вариант вручную допилить ромы из списка которые я выложил.
Кстати цена на игру Magical Pop'n за полнокомплект сейчас на ебае, на аукционе, поднялась более 400$, так что я думаю никто не скажет что овчинка не стоит выделки :)

SavitarSvit
Полезный чел
Posts: 359
Joined: Mon Dec 17, 2012 10:22 pm

Postby SavitarSvit » Tue Mar 26, 2013 9:57 pm

Я думаю, что самый легкий и наименее болезненный метод запуска этих ромов - это отменить эту проверку. Но! не просто отменить а оставить ее. Например. У какого то рома не определяется файл инфо. Я нажимаю записать ром в память, мне выдается сообщение что мол ром не того формата и тд. и т.п. но тут же выдается сообщение, типа "вы все равно хотите записать этот ром?" И вариант да и нет. Если я допустим знаю, что ром рабочий, то я уж лучше принудительно его запишу и поиграю. Если конечно такой способ не выведет карик из строя :)

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Tue Mar 26, 2013 10:14 pm

SavitarSvit
Да софтинку написать, чтобы она проверила ромы в папке и добавила значение в нужный адрес - не проблема, только решение больно костыльное, нужно чтобы такая штука работала на уровне самого картриджа.

P.S. Масяня, ты так и не ответил, из-за чего проблемы с Hyper Iria, на карте есть поддержка FastROM?

User avatar
SAMuel
Любитель
Posts: 248
Joined: Tue Aug 02, 2011 2:20 pm
Location: UA Kiev
Contact:

Postby SAMuel » Tue Mar 26, 2013 11:01 pm

SavitarSvit, кстати да, мысля хорошая, оставить проверку заголовков, при хорошем все как обычно работает, а при корявом заголовке выдвет предупреждение что мол ром некорректный, желаете продолжить Да или Нет.

Ждем что Масяня скажет о таком варианте.
Atari2600,Atari7800,AtariFS,ZXSpectrum,Dendy,NES,Kenga,GB,GBP,GBC,GBASP,GBA,NDSL,SNES,SMS,N64,GC,Wii,SMD,MD2,SGG,Gopher,DC,MDP,PSP1000,PSP2000,PSP3000,PSPStreet,PS1,PS2,PS3,XBOX,XBOX360,3DO...

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Wed Mar 27, 2013 1:36 pm

Вот как-то так, тулза которая фиксит всякое в заголовке.
http://www.mediafire.com/download.php?63pd522bvzpgb8g

Желательно на весь ромсет прогнать, но при этом его забекапив, т.к. может побить ромы с чипами ну и так, для сохранности.

И напишите, помогает вообще в проблеме или так ещё какие-то заковыки есть.

User avatar
SAMuel
Любитель
Posts: 248
Joined: Tue Aug 02, 2011 2:20 pm
Location: UA Kiev
Contact:

Postby SAMuel » Wed Mar 27, 2013 4:05 pm

Вот как-то так, тулза которая фиксит всякое в заголовке.
http://www.mediafire.com/download.php?63pd522bvzpgb8g

Желательно на весь ромсет прогнать, но при этом его забекапив, т.к. может побить ромы с чипами ну и так, для сохранности.

И напишите, помогает вообще в проблеме или так ещё какие-то заковыки есть.
Отлично, немного потестил на играх:

Battletoads & Double Dragon - The Ultimate Team (U) [!].smc
Battletoads in Battlemaniacs (U) [!].smc
Bio Metal (U) [!].smc
Blackthorne (U) [T+Rus Shed].smc
Contra III - The Alien Wars (U) [!].smc

Эти игры запустились без проблем, до этого Биометал и Контра напрочь картридж вводили в ступор, после ресета карту не видит, приходило выкл\вкл делать, но теперь порядок.

правда Биометал непошел дальше надписи This Game pak Is Not Designed For Your Super Nes.

Потестюка ещё игры которые не шли, 10 минут и ещё результат сообщю.
Atari2600,Atari7800,AtariFS,ZXSpectrum,Dendy,NES,Kenga,GB,GBP,GBC,GBASP,GBA,NDSL,SNES,SMS,N64,GC,Wii,SMD,MD2,SGG,Gopher,DC,MDP,PSP1000,PSP2000,PSP3000,PSPStreet,PS1,PS2,PS3,XBOX,XBOX360,3DO...

admin
Site Admin
Posts: 800
Joined: Tue Nov 23, 2010 5:55 pm
Location: Novosibirsk
Contact:

Postby admin » Wed Mar 27, 2013 4:10 pm

Как карту понять в каком режиме запустить игру? HIROM? LOROM? На плате картриджа производителя игры это жестко соеденино, поэтому и на заголовок пофиг.
Не, тут вопрос, твоему карту пофиг на заголовки или нет, если не имеют значения, то сделай опцию отключения проверки валидности и всё.
Карту пофиг на заголовок, но не пофиг на режим игры HI LO.

Поковыряю ZNES, подправлю детект рома.

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Wed Mar 27, 2013 4:25 pm

Карту пофиг на заголовок, но не пофиг на режим игры HI LO.

Поковыряю ZNES, подправлю детект рома.
Нет, вопрос был в том, что карт берёт значения Hi Lo из заголовка и нигде больше?
А zsnes ковырять нефиг делать, там всё в одном файле и близко к друг другу.
Эти игры запустились без проблем, до этого Биометал и Контра напрочь картридж вводили в ступор, после ресета карту не видит, приходило выкл\вкл делать, но теперь порядок.
Хм, биометал какой-то эффект плацебо, в нём как бы всё и так нормально и файл не меняется.

Лучше это, проверь разные версии из этого архива и напиши, какие нормально запускаются и идут.
http://www.mediafire.com/download.php?39taqsjp4an8c6y

User avatar
SAMuel
Любитель
Posts: 248
Joined: Tue Aug 02, 2011 2:20 pm
Location: UA Kiev
Contact:

Postby SAMuel » Wed Mar 27, 2013 4:42 pm

Потестил ещё немного:

Adult Manga 1 (PD) [T+Rus 100 Dennis].smc - нет
Adult Manga 2 (PD) [T+Rus].smc - нет
Chrono Trigger (U) [T-Rus].smc - да
Chrono Trigger [Leonis].smc - да
Dinocity [T+Rus 0.82 Lin].smc - да
Dr. Mario (J) [T+Rus] by Multisoft.smc - нет
Mega Man X (U)(V1.1)[!].smc - да
Pilotwings (U) [!].smc - нет
Shin Nekketsu Kouha - Kunio-tachi no Banka (J) [T+Rus(Mature)].smc - нет
Shin Nekketsu Kouha - Kunio-tachi no Banka (J) [T+Rus(Kind)].smc - нет
Shodai Nekketsu Kouha Kunio-kun (J).smc
Star Fox (U) (V1.2) [!].smc - нет
Star Fox (V1.2)(U)[!].smc - нет
Wolfenstein 3D (J).smc - да
Wolfenstein 3D (U).smc -да
WORMS (R).SMC - да
Zelda LttP [T+Rus 0-98-5].smc - да

эти ромы все подряд брал, не смотрел ни регионы ни наличии спец чипов.

потестю ещё игры пойду.

итак, было бы неплохо в проге сделать такие улучшения как:
1 открываться кнопкой обзор в папке где находится сама прога и запоминать последнюю папку которую указали,
2 также неплохо бы чтоб прога создавала папку Fix и туда копировала пофиксеные ромы,
3 ну и прога не реагирует на файлы с атрибутом Только чтение, она их пропускает не информируя что небыл пофиксен и обнаружен.
Atari2600,Atari7800,AtariFS,ZXSpectrum,Dendy,NES,Kenga,GB,GBP,GBC,GBASP,GBA,NDSL,SNES,SMS,N64,GC,Wii,SMD,MD2,SGG,Gopher,DC,MDP,PSP1000,PSP2000,PSP3000,PSPStreet,PS1,PS2,PS3,XBOX,XBOX360,3DO...

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Wed Mar 27, 2013 4:49 pm

SAMuel
Да мне лень что-то её в неё добавлять, временный костыль, на время, пока Масяня прошивку не починит. Хотя файл с фикшенными ромами можно было бы добавить, если очень нужно.

Адрес с значением Hi, Lo кстати только в играх ~100 из ~3000 затёрто.
А вот у ~1500 фаст ромы юзают.

User avatar
SAMuel
Любитель
Posts: 248
Joined: Tue Aug 02, 2011 2:20 pm
Location: UA Kiev
Contact:

Postby SAMuel » Wed Mar 27, 2013 4:53 pm

тестанул

Hyper Iria (Japan)_0.sfc
Hyper Iria (Japan)_1.sfc
Hyper Iria (Japan)_2.sfc
Hyper Iria (Japan)_3.sfc

что с архива что после фикса, хрень, никак не запустилось у меня :(

ну то понятно что Масяня допишет и пофиксит прошивочку, но многим юзерам не доступно ни физически ни мозгами как обновлять ПО, им проще будет прогой прогнать да пофиксить ромы, да и лишняя прожка не помешает :)
Atari2600,Atari7800,AtariFS,ZXSpectrum,Dendy,NES,Kenga,GB,GBP,GBC,GBASP,GBA,NDSL,SNES,SMS,N64,GC,Wii,SMD,MD2,SGG,Gopher,DC,MDP,PSP1000,PSP2000,PSP3000,PSPStreet,PS1,PS2,PS3,XBOX,XBOX360,3DO...

blackbird_ru
Любитель
Posts: 182
Joined: Sun Mar 18, 2012 12:39 pm

Postby blackbird_ru » Wed Mar 27, 2013 4:55 pm

тестанул

Hyper Iria (Japan)_0.sfc
Hyper Iria (Japan)_1.sfc
Hyper Iria (Japan)_2.sfc
Hyper Iria (Japan)_3.sfc

что с архива что после фикса, хрень, никак не запустилось у меня :(
А она даже не загружается в память?