Разработка и ромхакинг > Ромхакинг
[NES] Tecmo World Cup Soccer
neoborg:
всем привет.
для меня тема ромхакинга очень и очень нова, пока на уровне "разбираюсь что к чему", но уже хотя бы примерно представляю, как что работает. пришла в голову идея хакнуть сабж, причем не просто изменить цвета команд\поменять названия, а внести изменения в игровой процесс. для тех, кто играл, будет проще понять. список идей:
- поменять названия команд
- поменять цвета команд, а так же сделать майки двухцветными, полосатыми, как, например, команда ФК Шахтер
- во втором тайме команды меняются местами
- вратарь будет валяться не так долго; быстрее выбивает мяч, то есть не держит его в руках 60 секунд
- поменять стандартные игровые мелодии и звуки на другие. например, на некоторые мелодии из captain tsubasa II
- сделать 2 мелодии для каждой команды, то есть какая команда разводит, та музыка и играет
- добавить судью на поле. игрок, в черно-белом шмоте, который бегает по полю быстрее других игроков, не вмешиваясь в игру
- увеличить интеллект ботов, чтобы они не убегали от мяча и нормально ловили пасы
- поправить момент, когда твой управляемый игрок появляется не возле мяча, а где-то на краю экрана
- отображение текущего счета; карта с передвижением игроков (опции)
- добавить возможность играть com vs player
- увеличить варианты выбора времени, добавить больше команд в игру
- добавить возможность игры 4 игроками. двое играют, двое на воротах
- добавить функцию крупного турнира навылет для 2 или 4 игроков
- при игре с компьютером сделать скорость ботов нарастающей
- добавить погодные условия; поменять вид футбольного поля (опции)
- изменить скорость навеса (кнопка B) при ударе по воротам, сделать его похожим на удар бота
поскольку я только-только начал во все это вникать, процесс обучения продвигается слишком медленно. например, я знаю, где можно менять цвет игроков, но я не знаю, где в коде прописано, какой команде какие цвета, и как потом эти изменения сохранить. для работы пользуюсь FCEUX 2.2.2. само собой, я не жду, что вы будете делать всю работу за меня, ни в коем случае. но помощь мне не помешает.
если у кого-то есть желание принять участие в модификациях, пишите, буду очень благодарен. или добавляйте свои идеи, в пределах разумного, естественно.
также предлагаю вам вступить в нашу группу http://vk.com/tecmo_world_cup_soccer , где мы проводим регулярные чемпионаты по этой замечательной игре. у нас более 20 игроков, 8 в высшей лиге и 10 в средней, несколько запасных. матчи проводим по интернету. мы будем рады новым игрокам в Tecmo.
возможно, играя с нами, у вас появится свой интерес помочь моему проекту. спасибо за внимание
Mad:
neoborg, Планов много написал. Начинай с малого, отписывайся о результатах, может найдутся желающие помочь делом или советом.
DANGER X:
Good start. Keep it up :cool:
neoborg:
2 рома, посвященных чемпионату мира 2014 в Бразилии. Изменены названия, цвета команд близкие к оригиналу.
Также нашей группе будет проводиться чемпионат по настоящему календарю на этих ромах, можете поучавствовать.
http://vk.com/tecmo_world_cup_soccer
DANGER X:
Awesome :cool:
DANGER X:
Continue dude this is great :D
neoborg:
версия рома на четвертый игровой сезон.
изменения:
- меню, команды и таблицы на русском языке;
- мерцание индивидуальных команд в такт болельщикам на заднем плане;
- собственные цвета у индивидуальных команд;
- посекундный отсчет времени, стандартный тайм увеличен на 30 сек;
- вратарь поднимается в 2 раза быстрее;
- несколько незначительных изменений
большая просьба к хакерам форума: подскажите, как можно поменять расположение игроков во втором тайме? чтобы они менялись сторонами, как в настоящем футболе. дайте пару советов. спасибо.
neoborg:
помогите, пожалуйста, разобраться в коде.
хотел сделать, чтобы когда выбираешь команду, цвет индикатора становился цветом майки выбранной команды.
для этого заменил кусок кода на свой (предварительно убедившись, что он не используется).
первая строчка кода (87C0) - 60BCD987BEA803B9D0879D93032078C060 - сам код
вторая строчка кода (87D0) - 30120D2A26310A14052C301630163711 - нужные мне цвета
третья строчка кода (87E0) - 01FFFFFF02FFFFFFFFFFFFFFFFFFFFFF - два значения для выбора нужного индикатора
в двух нужных местах поменял JSR на адрес 87C0
02:87BF:60 RTS -----------------------------------------
02:87C0:BC D9 87 LDY $87D9,X - загрузка в У нужного номера индикатора, первый или второй
02:87C3:BE A8 03 LDX $03A8,Y - загрузка в Х положение индикатора в списке команд, от 00 до 0F
02:87C6:B9 D0 87 LDA $87D0,Y - загрузка в А нужного цвета
02:87C9:9D 93 03 STA $0393,X - установка в адрес нужного цвета
02:87CC:20 78 C0 JSR $C078 - оставил продолжение кода, как было
02:87BF:60 RTS -----------------------------------------
в продолжении кода Х и У сразу заменяются другими значениями, поэтому то, что я их поменял, не страшно.
до этого было:
02:8804:60 RTS -----------------------------------------
02:8805:14 UNDEFINED
02:8806:10 0C BPL $8814
02:8808:08 PHP
02:8809:A9 2A LDA #$2A - была ссылка сразу вот сюда
02:880B:9D 93 03 STA $0393,X
02:880E:20 78 C0 JSR $C078
02:8811:80 UNDEFINED
02:8812:03 UNDEFINED
02:8813:60 RTS -----------------------------------------
как только выбираю команду, все зависает.
что я делаю не так? :neznayu:
Ti_:
--- Цитата: neoborg от 30 Августа 2014, 17:18:44 --- 02:8809:A9 2A LDA #$2A - была ссылка сразу вот сюда
02:880B:9D 93 03 STA $0393,X
02:880E:20 78 C0 JSR $C078
02:8811:80 UNDEFINED
02:8812:03 UNDEFINED
02:8813:60 RTS -----------------------------------------
как только выбираю команду, все зависает.
что я делаю не так? :neznayu:
--- Конец цитаты ---
Не смотрел , но там где в оригинале JSR $C078 вроде загрузка таблицы из поинтеров идёт.
А ты ее переместил и поэтому грузятся совершенное левые данные.
neoborg:
--- Цитата: Ti_ от 30 Августа 2014, 21:53:00 ---Не смотрел , но там где в оригинале JSR $C078 вроде загрузка таблицы из поинтеров идёт.
А ты ее переместил и поэтому грузятся совершенное левые данные.
--- Конец цитаты ---
так а какая разница, что там дальше будет после JSR $C078. моя команда выполняется до нее. и этот JSR $C078 я оставил в конце как и было, чтобы цепочка не обрывалась.
или я не совсем понял пояснения. команда раньше выполнялась по адресу 8809 (JSR 8809), но поскольку я переместил код в другое место, указал на него уже другой JSR 87C0.
меня больше волнует, правильно ли я написал код, и если нет, где ошибка. у меня это впервые, я целый час думал над этой строчкой, параллельно заглядывая в мануал по ассемблеру, но вроде все правильно написал, хоть он и не пашет почему-то
Добавлено позже:
я кажется понял, где ошибка
...
02:87C3:BE A8 03 LDX $03A8,Y - загрузка в Х положение индикатора в списке команд, от 00 до 0F
...
02:87C9:9D 93 03 STA $0393,X - установка в адрес нужного цвета
мне необходимо иметь в конце первое значение Х, а я его поменял, поэтому здесь
02:87C9:9D 93 03 STA $0393,X адрес в итоге получается неверный. хотя в этой строчке и строчке ниже находятся значения цветов на экране, подумаешь сменил другой цвет, а не тот, который хотел, зачем сразу виснуть-то.
Добавлено позже:
ладно, у меня еще вопрос есть. вот я смотрю на места, где написан код, а эти места целиком забиты, куски программы идут одни за другим. если я хочу внести свой кусок кода, мне что, обязательно нужно писать его поверх старых? или есть еще свободное место, которое не используется, и в него можно что-то записать, чтобы работало? не в графику же совать...
Ti_:
--- Цитата: neoborg от 30 Августа 2014, 23:12:53 ---так а какая разница, что там дальше будет после JSR $C078. моя команда выполняется до нее. и этот JSR $C078 я оставил в конце как и было, чтобы цепочка не обрывалась.
или я не совсем понял пояснения. команда раньше выполнялась по адресу 8809 (JSR 8809), но поскольку я переместил код в другое место, указал на него уже другой JSR 87C0.
--- Конец цитаты ---
А в данном случае разница есть, потому что функция $c078 работает таким образом что загружает какие-то данные с места после которога она была. А при jsr это место записывается в стек. А место то это, у тебя изменилось.
Вот, например тут:
--- Код: ---BANK4:812D JSR loc_4200_C078
BANK4:812D ; ---------------------------------------------------------------------------
BANK4:8130 .BYTE $80
BANK4:8131 .BYTE 3
BANK4:8132 ; ---------------------------------------------------------------------------
BANK4:8132 LDA #$15
--- Конец кода ---
Ты ведь знаешь после jsr код должен вернуться на BANK4:8130 , а там кода нет. Потому что сама функция C078 умеет считывать и пропускать эти два байта.
--- Код: ---BANK6:C078 loc_4200_C078: ; CODE XREF: BANK4:812DP
BANK6:C078 ; BANK4:880EP
BANK6:C078 JMP loc_4200_CB18
--- Конец кода ---
--- Цитата ---BANK6:CB18: loc_4200_CB18:
BANK6:CB18 TSX
BANK6:CB19: LDA unk_0_101,X
--- Конец цитаты ---
Добавлено позже:
--- Цитата: neoborg от 30 Августа 2014, 23:12:53 ---ладно, у меня еще вопрос есть. вот я смотрю на места, где написан код, а эти места целиком забиты
--- Конец цитаты ---
В твоём роме вроде есть место $fc78-$ffcf (rom $fc88-)
neoborg:
--- Цитата: Ti_ от 31 Августа 2014, 00:05:33 ---А в данном случае разница есть, потому что функция $c078 работает таким образом что загружает какие-то данные с места после которога она была. А при jsr это место записывается в стек. А место то это, у тебя изменилось.
--- Конец цитаты ---
понятно. просто как я писал, значения А, Х, У после JSR $C078 начзачаются по-новой.
--- Цитата ---
Добавлено позже:В твоём роме вроде есть место $fc78-$ffcf (rom $fc88-)
--- Конец цитаты ---
о, круто. мне вполне хватит ^_^
спасибо за ответы.
DANGER X:
What happened with the hack???
SeregaZ:
probably good :) them group in "contackt" still play in championats.
neoborg:
--- Цитата: DANGER X от 28 Марта 2015, 18:15:16 ---What happened with the hack???
--- Конец цитаты ---
я пока не забил на него) работаю над ромом для 6-го сезона.
вот пока предварительная версия
основные изменения рома относительно Tecmo World Cup Soccer (V)
- 48 команд (команда из первого набора выбирается клавишей B, второго A+B, третьего A+Start+B. значок сменится на зелёный, жёлтый и красный соответственно)
- расширенные ворота
- вратарь может бегать по всей штрафной
- время останавливается, если вратарь взял мяч в руки, можно бегать с мячом сколько угодно
- навес вратаря похож на навес игрока
- вратарь может пасовать как игрок
- ускорен навес с углового
- с углового можно пасовать
- поправлена графика поднимающегося вратаря
- выбирать время тайма и ставить на паузу может любой игрок
DANGER X:
Great :ohmy: Are you planing on add more?
neoborg:
--- Цитата: DANGER X от 22 Апреля 2015, 17:47:01 ---Great :ohmy: Are you planing on add more?
--- Конец цитаты ---
вряд ли много чего еще добавлю, по крайней мере до 6 сезона. буду чисто шлифовать :oldgamer:
neoborg:
это не финальная версия, но добавлять в принципе уже больше нечего.
из основных изменений (то, что было добавлено после Tecmo World Cup Soccer (V) final 3.4.3 GK):
- возможность играть от 2 до 4 игроков одновременно
- переключение игроков на экране кнопкой select
- отображение счета на экране
- во втором тайме команды меняются сторонами
- добавлен капитан команды
- и еще куча всего по мелочи, все подробности читай тут
booook:
Здравствуйте! Помогите плз!
решил поиграть и пройти этот замечательный футбол (не конкретно в этой версии а просто в сборнике ромов для эмулятора) снова который я задрачивал в детстве и проходил.
Но ахуел когда на второй же команде комп дал мне пизды потому что его игроки бегали в два раза быстрее.
1. Это так всегда было что бы игроки сразу во второй игре бегали быстрее? Не припомню такого что то...
2. Я могу сделать так что бы мои игроки тоже так бегали?
3. В этой версии тоже такая канитель?
Спасибо!
neoborg:
--- Цитата: booook от 07 Июля 2015, 18:53:51 ---1. Это так всегда было что бы игроки сразу во второй игре бегали быстрее? Не припомню такого что то...
--- Конец цитаты ---
в оригинале всегда со 2-го матча они вдвое быстрее
--- Цитата: booook от 07 Июля 2015, 18:53:51 ---2. Я могу сделать так что бы мои игроки тоже так бегали?
--- Конец цитаты ---
только если хакнуть, либо с читами
--- Цитата: booook от 07 Июля 2015, 18:53:51 ---3. В этой версии тоже такая канитель?
--- Конец цитаты ---
в этой версии нет игры против компа
--- Цитата: booook от 07 Июля 2015, 18:53:51 ---Спасибо!
--- Конец цитаты ---
Не за что :)
Навигация
Перейти к полной версии