nes-contra-us kompiluje prawidłowo, Mesen ładnie wyświetla symbole do debugowania. Readme ode mnie:
0. ROM - sprawdzenie czy właściwy
echo "7BDAD8B4A7A56A634C9649D20BD3011B baserom.nes" | md5sum -c -
Oczekiwany wynik:
baserom.nes: OK
baserom.nes - ścieżka do ROM / nazwa pliku ROM Contra US.
1. Mesen - https://www.mesen.ca/
Pobrać Linux (dev), rozpakować.
Plik oznaczyć jako uruchamialny we właściwości -> prawa dostępu
1.1 Instalacja .NET 6.0 - !dla tych co wiedzą co robią! to najpierw usunąć wszystko .NET co jest w systemie
sudo apt remove dotnet*
sudo apt remove aspnetcore*
sudo apt remove netstandard*
1.2 może wystarczy zrobić to:
sudo touch /etc/apt/preferences.d/99microsoft-dotnet.pref
1.3 w pliku 99microsoft-dotnet.pref:
Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001
1.4
sudo apt install dotnet-sdk-6.0
2. cc65
2.1
sudo apt-get install cc65
2.2
dpkg -L cc65
dostajemy ścieżki do wszystkich plików związanych z cc65
2.3
Na Linuxie dodać do zmiennych środowiskowych:
export PATH="$PATH:/usr/bin/cc65"
2.4
Test czy działa ok:
cc65
Oczekiwany wynik:
cc65: No input files
ca65
Oczekiwany wynik:
ca65: No input files
ld65
Oczekiwany wynik:
ld65: Error: No object files to link
3. nes-contra-us
Pobrać z Git:
mkdir nes-contra-us
cd nes-contra-us
git clone https://github.com/vermiceli/nes-contra-us.git .
3.1
Oznaczyć build.sh jako wykonywalny, potem:
./build.sh
Oczekiwany wynik (uwaga długie!):
Sorry but you are not allowed to view spoiler contents.
EDIT: Nie miałem pomysłu co zmodyfikować w kodzie to popsułem jakieś dane od układu pierwszego poziomu, zrzut ekranu w załączniku.
EDIT2: Narzędzie do dekompresji wymaga pythona3.
Uruchomiłem je tak:
python3 main.py D ../baserom.nes test.bin 116963
baserom.nes to ROM z Contra US. Test.bin to plik wynikowy.
Pythona3 mam w wersji 3.10.12.
Nie jestem w stanie sprawdzić wersji starszych niż Python 3.7, za nowy OS (Ubuntu 22.04). Python 3.7 też działa ok ze skryptem.
Wynik:
Sorry but you are not allowed to view spoiler contents.
Nie wiem pod jakim offsetem jest grafika w Contrze, Trax w swoim Hacking Guide pisał że to adres 0x1c8e3 czyli 116963 dziesiętnie. Co z tym dalej zrobić - nie mam NESowej wiedzy.
EDIT 3: niczym zaniedbany, pryszczaty nerd-fanboj Linuxa skompilowałem Pythona 3.4 i to narzędzie do dekompresji / kompresji działa prawidłowo. Musi być jakieś inny powód że u Ciebie @Mejs nie działa.
To by było na tyle, nie wiem co z tym dalej mogę podziałać, jakieś pytania / problemy?