| Разработка и ромхакинг > Инструменты |
| [NES] конвертер VCD game 300 |
| (1/1) |
| fdx:
Лежал диск и стало интересно вытащить от туда игры. Структуру игр nes не знаю, но сходу начал писать код. Написал скрипт за полтора дня (+ где-то дней 5 делал из него exe). На диске есть несколько папок, два файла не копируются вообще (битые?, но это не игры). А сами игры лежат в папке NEWROM в контейнерах bin без NES заголовка. Реально там 150 игр, остальные 150 оказалась копиями. В зависимости от размера (их всего 4 вида) я прописал заголовки: 40960 => 4e45531a 020101 000000000000000000 49152 => 4e45531a 020231 000000000000000000 65536 => 4e45531a 020431 000000000000000000 131072 => 4e45531a 080021 000000000000000000 Если найдёте на других дисках другие размеры дайте знать я добавлю. В целом большинство сконверченных игр запускаются (во FCEUX), но некоторые нет, либо криво (29). Причин может быть две почему так: 1) заголовок может быть не подходящим, так как я не разбираюсь особо. Желательно как-то определять кол-во блоков кода и графики (PRG,CHR), но я не знаю как, может здешние знающие подскажут. 2) некоторые игры такие как contra, rockman имели один байт который мешал запуску во FCEUX (а DVD-плееру он не мешал, видимо фсеукс привиредливый). И когда я находил этот байт в сравнении с оригиналом, и менял то игра начинала запускаться. Для этих двух игр я сделал ещё такие исправления по 1 байту. Те же остальные что не работают нужно сравнивать с оригинальными файлами но для этого нужно знать название. В hex редакторе вроде не нашёл. Надеюсь на обратную связь чтобы добавлять исправления. Вот список не запускающихся (или кривых) : G003 G018 G020 G034 G035 G046 G047 G048 G052 G068 G106 G117 G119 G121 G129 G143 G148 G156 G200 G201 G205 G212 G219 G252 G254 G273 G274 G283 G285 Как использовать: поместите exe конвертера в папку с bin файлами и запустите. Появится папка output с nes играми. скачать 150 игр: ] скачать конвертер: ] |
| Sharpnull:
Сделал поиск по NES 2.0 ромсету: --- Код: ---# G001.nes Licensed - Japan\1942.nes # G003.nes Licensed - Japan\高橋名人の冒険島.nes # G005.nes Licensed - Japan\TwinBee.nes # G007.nes Licensed - Japan\Mighty Bomb Jack (rev0).nes # G009.nes Licensed - Japan\Circus Charlie.nes # G010.nes Licensed - North America\Contra.nes # G013.nes Unlicensed - Taiwan&Hong Kong\Fire Dragon.nes # G014.nes Licensed - Japan\頭脳戦艦 Galg.nes # G015.nes Unlicensed - Taiwan&Hong Kong\Magic Jewelry.nes # G017.nes Licensed - Japan\Pooyan.nes # G018.nes Licensed - Japan\Rainbow Islands꞉ The Story of Bubble Bobble 2.nes Licensed - North America\Rainbow Islands꞉ The Story of Bubble Bobble 2.nes # G020.nes Unlicensed - North America\Tetris꞉ The Soviet Mind Game.nes # G021.nes Licensed - Japan\10-Yard Fight (rev0).nes # G022.nes Licensed - Japan\Super Arabian.nes # G025.nes Licensed - Japan\Binary Land.nes # G026.nes Licensed - Japan\Balloon Fight.nes # G027.nes Licensed - Japan\BurgerTime.nes # G031.nes Licensed - Japan\Clu Clu Land.nes # G032.nes Licensed - Japan\Field Combat.nes # G033.nes Licensed - Japan\Dig Dug.nes # G034.nes Licensed - Japan\Donkey Kong (rev0).nes Licensed - Japan\Donkey Kong (rev1).nes # G035.nes Licensed - Japan\Donkey Kong Jr. (rev1).nes # G036.nes Licensed - Japan\Donkey Kong 3.nes # G038.nes Licensed - Japan\Dragon Unit.nes Licensed - North America\Castle of Dragon.nes # G039.nes Licensed - Japan\Elevator Action (rev0).nes # G040.nes Licensed - Japan\Exerion.nes # G042.nes Licensed - Japan\Formation Z (rev1).nes # G043.nes Licensed - Japan\Front Line.nes # G046.nes Licensed - Japan\The Goonies II꞉ Fratelli 最後の挑戦.nes Licensed - North America\The Goonies II.nes Licensed - PAL\The Goonies II.nes # G047.nes Licensed - Japan\Gradius.nes # G048.nes Licensed - North America\Rush'n Attack.nes Licensed - PAL\Rush'n Attack.nes # G052.nes Licensed - Japan\Ice Climber.nes Licensed - North America\Ice Climber.nes # G056.nes Licensed - Japan\影の伝説.nes # G057.nes Licensed - Japan\Karateka.nes # G059.nes Licensed - Japan\Yie Ar Kung-Fu (v1.2).nes # G062.nes Licensed - Japan\Championship Lode Runner.nes # G063.nes Licensed - Japan\Lot Lot.nes # G066.nes Licensed - Japan\4人打ち麻雀 (rev0).nes # G068.nes Licensed - Japan\Mappy.nes # G069.nes Licensed - Japan\Mario Bros..nes # G071.nes Licensed - Japan\Bat & Terry꞉ 魔境の鉄人Race.nes # G072.nes Licensed - Japan\忍者くん꞉ 魔城の冒険 (rev0).nes Licensed - Japan\忍者くん꞉ 魔城の冒険 (rev1).nes # G074.nes Licensed - North America\Othello.nes # G075.nes Licensed - Japan\Pac-Man (rev0).nes Licensed - Japan\Pac-Man (rev1).nes # G081.nes Licensed - Japan\Road Fighter.nes # G082.nes Licensed - Japan\Rockman.nes Licensed - North America\Mega Man.nes Licensed - PAL\Mega Man.nes # G083.nes Licensed - Japan\Astro Robo Sasa.nes # G085.nes Licensed - Japan\仮面の忍者 赤影.nes # G087.nes Licensed - Japan\Sky Destroyer.nes # G093.nes Licensed - Japan\Star Gate.nes # G094.nes Licensed - Japan\Star Soldier.nes Licensed - North America\Star Soldier.nes # G096.nes Licensed - Japan\Tennis.nes # G100.nes Licensed - Japan\Xevious (rev0).nes Licensed - Japan\Xevious (rev1).nes # G102.nes Licensed - Japan\Bokosuka Wars.nes # G105.nes Licensed - Japan\Geimos.nes # G106.nes Licensed - Japan\Penguinくん Wars.nes # G109.nes Licensed - Japan\Joust.nes # G110.nes Licensed - Japan\超時空要塞 Macross.nes # G111.nes Licensed - Japan\麻雀 (rev0).nes Licensed - Japan\麻雀 (rev1).nes Licensed - Japan\麻雀 (rev2).nes # G113.nes Licensed - Japan\Tag Team Pro-Wrestling.nes # G114.nes Multicarts - Extracts\中国象棋 - Chinese Chese.nes Multicarts - Extracts\中国象棋.nes # G115.nes Unlicensed - Taiwan&Hong Kong\暗棋 - Gloomy Chess.nes # G117.nes Licensed - Japan\Cadillac.nes # G119.nes Licensed - Japan\Kero Kero Keroppiの大冒険.nes # G121.nes Licensed - Japan\Moaiくん.nes # G122.nes Licensed - Japan\長靴をはいた猫꞉ 世界一周 80日大冒険.nes # G125.nes Licensed - Japan\新人類꞉ The New Type.nes # G126.nes Licensed - Japan\つっぱり大相撲.nes # G127.nes Licensed - Japan\鉄道王꞉ Famicom Boardgame.nes # G129.nes Licensed - North America\Mickey Mousecapade.nes # G131.nes Licensed - Japan\A.S.O. - Armored Scrum Object.nes # G132.nes Licensed - Japan\忍者くん꞉ 阿修羅の章.nes # G133.nes Licensed - Japan\戦場の狼.nes Licensed - North America\Commando.nes # G136.nes Licensed - Japan\Cosmo Genesis.nes # G137.nes Licensed - North America\Karate Champ (rev0).nes Licensed - North America\Karate Champ (rev1).nes # G138.nes Unlicensed - Taiwan&Hong Kong\水果狸.nes # G139.nes Licensed - Japan\迷宮組曲꞉ Milonの大冒険.nes # G140.nes Licensed - North America\Metal Gear.nes Licensed - PAL\Metal Gear.nes # G141.nes Licensed - Japan\Space Harrier.nes # G142.nes Licensed - North America\Jimmy Connors Tennis.nes # G143.nes Licensed - Japan\Tiger-Heli.nes # G144.nes Unlicensed - North America\Maxivision.nes Unlicensed - North America\Pyramid (rev1).nes Unlicensed - Taiwan&Hong Kong\Pyramid.nes # G145.nes Unlicensed - Taiwan&Hong Kong\Brush Roller.nes # G147.nes Licensed - Japan\Son Son.nes # G148.nes Licensed - Japan\Exed Exes.nes # G156.nes Licensed - Japan\Argus.nes # G164.nes Licensed - Japan\Raid on Bungeling Bay (rev0).nes Licensed - North America\Raid on Bungeling Bay.nes # G166.nes Licensed - North America\Donkey Kong Jr. Math.nes # G167.nes Licensed - Japan\B-Wings.nes # G168.nes Licensed - Japan\Flappy.nes # G169.nes Licensed - Japan\Volguard II.nes # G170.nes Licensed - Japan\Hogan's Alley.nes # G173.nes Licensed - Japan\Bomberman.nes # G174.nes Licensed - Japan\Super Dyna'mix Badminton.nes # G178.nes Licensed - Japan\Millipede.nes # G179.nes Licensed - Japan\囲碁指南.nes # G181.nes Licensed - Japan\Gyrodine.nes # G182.nes Licensed - Japan\Buggy Popper.nes # G184.nes Licensed - Japan\Space Invaders.nes # G185.nes Licensed - Japan\Hottermanの地底探検.nes # G188.nes Licensed - Japan\Shufflepuck Café.nes # G190.nes Licensed - North America\Jackal.nes # G191.nes Licensed - Japan\MagMax.nes # G194.nes Licensed - North America\Side Pocket.nes Licensed - PAL\Side Pocket.nes # G195.nes Licensed - Japan\Lode Runner.nes Licensed - North America\Lode Runner.nes # G200.nes Licensed - Japan\Puzznic.nes # G201.nes Licensed - Japan\Seicross.nes # G203.nes Licensed - Japan\Battle City.nes # G205.nes Licensed - Japan\Popeye (rev0).nes # G207.nes Licensed - Japan\Chack 'n Pop.nes # G208.nes Licensed - Japan\本将棋꞉ 内藤九段将棋秘伝.nes # G212.nes Licensed - Japan\Galaga.nes # G216.nes Licensed - Japan\Pac-Land.nes # G217.nes Licensed - Japan\Wrecking Crew.nes # G218.nes Licensed - North America\Double Dribble (rev0).nes # G219.nes Licensed - Japan\Battle City.nes Licensed - Japan\Warpman.nes # G220.nes Licensed - Japan\Baseball.nes # G222.nes Licensed - North America\Gun.Smoke.nes Licensed - PAL\Gun.Smoke.nes # G225.nes Licensed - Japan\Golf.nes # G226.nes Licensed - Japan\Antarctic Adventure (rev0).nes Licensed - Japan\Antarctic Adventure (rev1).nes # G229.nes Licensed - Japan\キン肉マン꞉ Muscle Tag Match (rev0).nes # G232.nes Licensed - Japan\King's Knight.nes # G233.nes Licensed - Japan\激突四駆 Battle.nes # G235.nes Licensed - Japan\いっき.nes # G240.nes Licensed - Japan\Route 16 Turbo.nes # G241.nes Licensed - Japan\Arkanoid.nes # G242.nes Licensed - Japan\Dough Boy.nes # G250.nes Licensed - Japan\人魚姫.nes Licensed - North America\The Little Mermaid.nes # G252.nes Licensed - Japan\五目ならべ.nes # G254.nes Licensed - Japan\所さんのまもるもせめるも.nes # G258.nes Licensed - North America\Volleyball.nes # G259.nes Licensed - Japan\Star Force.nes # G261.nes Unlicensed - Taiwan&Hong Kong\臺灣 16 麻雀 (rev1).nes # G263.nes Licensed - North America\Blades of Steel.nes Licensed - PAL\Blades of Steel.nes # G265.nes Licensed - Japan\Nuts & Milk.nes # G268.nes Licensed - Japan\Lunar Ball.nes # G271.nes Unlicensed - Taiwan&Hong Kong\Poker 集錦.nes # G273.nes Licensed - Japan\Quarth.nes # G274.nes Licensed - Japan\Star Luster.nes # G278.nes Licensed - Japan\Sqoon (rev0).nes # G281.nes Licensed - Japan\Flying Hero.nes # G282.nes Licensed - Japan\Championship Bowling.nes Licensed - North America\Championship Bowling.nes # G283.nes Licensed - Japan\Terra Cresta.nes Licensed - North America\Terra Cresta.nes # G284.nes Licensed - Japan\おにゃんこ Town.nes # G285.nes Licensed - Japan\1943꞉ The Battle of Valhalla.nes Licensed - North America\1943꞉ The Battle of Midway.nes # G286.nes Licensed - Japan\Dr. Mario (rev0).nes # G290.nes Licensed - North America\Ice Hockey.nes Licensed - PAL\Ice Hockey.nes # G292.nes Licensed - Japan\Super Mario Bros..nes Licensed - North America\NES Action Set.nes Licensed - PAL\NES Action Set.nes Licensed - PAL\NES Super Set (rev0).nes Licensed - PAL\NES Super Set (rev1).nes Licensed - PAL\Super Mario Bros. (rev1).nes # G293.nes Licensed - Japan\Spelunker.nes # G297.nes Licensed - Japan\Thexder.nes --- Конец кода --- Скрипт на Python 3 такой: --- Код: ---from pathlib import Path roms_paths = ( r"nes2\Licensed - Japan", r"nes2\Licensed - North America", r"nes2\Licensed - PAL", r"nes2\Unlicensed - Elsewhere", r"nes2\Unlicensed - Japan", r"nes2\Unlicensed - North America", r"nes2\Unlicensed - Taiwan&Hong Kong", r"nes2\Multicarts - Extracts", ) def read_rom(p, off, size): with open(p, "rb") as f: f.seek(off) b = f.read(size) return b out = "" for p in Path(".").glob("*.nes"): is_find = False temp = "" out += f"# {p}\n" vcd_bytes = ( read_rom(p, 0x10, 0x40), read_rom(p, 0x1010, 0x40), read_rom(p, 0x4010, 0x40), ) for roms_path in roms_paths: for p_rom in Path(roms_path).rglob("*.nes"): rom_bytes = ( read_rom(p_rom, 0x10, 0x40), read_rom(p_rom, 0x1010, 0x40), read_rom(p_rom, 0x4010, 0x40), ) if vcd_bytes[0] == rom_bytes[0] and vcd_bytes[1] == rom_bytes[1] and vcd_bytes[2] == rom_bytes[2]: out += f"{p_rom}\n" is_find = True if vcd_bytes[0] == rom_bytes[0] or vcd_bytes[1] == rom_bytes[1] or vcd_bytes[2] == rom_bytes[2]: temp += f"{p_rom}\n" if not is_find: out += temp Path("names.txt").write_text(out, encoding="utf-8") --- Конец кода --- Положить с *.nes после вашей программы, в roms_paths указать свои пути до ромов, я выбрал только некоторые папки. Для исправления ромов запускать ромы в Mesen с отладчиком и вкл. Break on BRK, Unofficial opcodes, Unstable opcodes, там будет видно, хотя в 高橋名人の冒険島 изменили адрес регистра маппера, это тоже проверять (запись в $4020-7FFF). |
| fdx:
Новая версия. Исправил большинство игр, пришлось добавлять отдельные исправления к каждой не рабочей игре. Хорошо бы понять почему нужно править именно эти байты. Отладчиком я не понял как пользоваться, мне же нужно знать места байтов в файле а не в озу. Искал байты просто через hex редактор. В файле G018 не смог найти нужные байты, т.к. слишком много различий с оригиналом. offset dec G003 Meijin no Bouken-jima 14079 D0 14278 B7 G018 ----- не нашёл нужные байты G020 tetris 35 F0 G034 Donkey Kong 02 01 00 08 18420 4C 2036 4C G035 Donkey Kong Jr. 18115 4C 1731 4C G046 Goonies 114825 4C G047 Gradius 119 4C 6779 F0 G048 Rush'n Attack 114817 4C 114958 A9 G052 Ice Climber 02 01 00 08 107 4С 16491 4C G068 Mappy 16511 F0 127 F0 G106 Penguin-kun Wars 279 4C G117 cadilac 16799 4C G119 Kero Kero 9079 F0 G121 Moai-kun 137 4С G129 Mickey Mousecapade 517 D0 23460 9D G143 Tiger-Heli 02 04 30 G148 Exed Exes 851 90 G156 Argus 02 02 71 58 291 30 G200 Puzznic 162 4C G201 Seicross 152 4C G205 Popeye 18067 4C G212 Galaga 02 01 00 00 16523 D0 139 D0 G219 BattleCity 02 01 00 08 22794 F0 6410 F0 G252 Gomoku Narabe 18931 D0 G254 Tokoro-san no Mamoru 320 F0 G273 Quarth 32352 4C G274 Star Luster 02 01 00 277 D0 G283 Terra Cresta 08 00 20 116062 4С G285 1943 08 00 20 115164 D0 скачать конвертер v1.1: toNES v1.1.zip (138.5 КБ - загружено 6 раз.) |
| fdx:
Нашёл образ диска и сравнил его со своим, всё одинаково кроме битых файлов (для защиты от копирования?) они у меня другие. Т.е. можно собрать полностью не битый вариант. И теоритически было бы не сложно заменить игры на свои, копировав их обратно в бин контейнер. Если игра будет меньше можно заполнить недостающий размер копировав часть кода игры в начало, как это было сделано китайцами. Но неизвестно надо ли это кому-то, сейчас и dvd плееров то нет ни у кого наверное. |
| Yoti:
Так вроде была тема на форуме про эту штуку, там тоже дампы выкладывали. |
| Навигация |
| Главная страница сообщений |