Разработка и ромхакинг > Ромхакинг и программирование
[NES] Tecmo World Cup Soccer
(1/2) > >>
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 ---Спасибо!

--- Конец цитаты ---
Не за что  :)
Навигация
Главная страница сообщений
Следующая страница

Перейти к полной версии