Hej. Jak się nikt nie trafi, to mogę poratować kwarcem SMD.
Pozdr!

2

(83 odpowiedzi, napisanych Zloty)

Ja to tylko tu zostawię :)
https://www.youtube.com/watch?v=PUeXpziqcYA
Polecam z napisami

3

(11 odpowiedzi, napisanych Software, Gry - 8bit)

Ja jeszcze nie widziałem zakończenia - jest gdzieś na YT?

4

(11 odpowiedzi, napisanych Software, Gry - 8bit)

Mq: tak, lubię tę wersję, bo można długo pograć i zawsze mnie zastanawiało, co ja mam zrobić przy tym posągu. A także jako dzieciak odkryłem, że po drzwiach da się wejść do "skarbca" czyli pola na itemki i pomnożyć miecze. Przynajmniej tak sobie wtedy wyobrażałem ten skarbiec, o którym mówił opis w jakiejś gazecie.

tOri: możemy pogadać, ale ja tego używam dopiero miesiąc, nie mam pojęcia nic o agentach, skilach itp.
Claude na pewno ogarnia Arduino- nie wiem czy znacie taką "konsolę" Uzebox - jedna Atmega644 i nic więcej.
W tej chwili zrobiłem już konwersję Montezumy, River Raid, Moon Patrol a także demo Bad Apple :)
A dziś skończyłem Crystal Raider i wyszło rewelacyjnie.
https://uzebox.org/forums/viewforum.php ... 39510a2014

Wskażcie mi "dobrą" wersję Montezuma 16k (może z wyborem nieśmiertelności), a przepalę parę tokenów i będzie edytor :)
Wrzuci się do jednego wątku i będzie komplet.

5

(11 odpowiedzi, napisanych Software, Gry - 8bit)

Chciałbym tu wrzucić, niech zostanie dla potomnych.
Poprosiłem Claude o edytor map do Montezumy.
Jest to edytor konkretnie do tej wersji, gdyż ma wybór nieśmiertelności.
Po edycji mapy generowany jest z powrotem spakowany plik xex.

Krótki opis:
# Montezuma XEX Editor - edytor komnat oryginalnej gry na Atari

`montezuma_xex_editor.html` to edytor komnat gry **Montezuma's Revenge** na Atari XL/XE w wersji z pliku *Montezumas Revenge 1983 Utopia Software (US) beta t 1 Seban.xex*. Otwierasz go w przeglądarce (Chrome, Firefox, Edge), wczytujesz plik `.xex`, zmieniasz komnaty i zapisujesz nowy plik `.xex`. Nowy plik ma ten sam program ładujący i rozpakowujący co oryginał, więc uruchamia się tak samo: w emulatorze (Altirra, atari800) i na prawdziwym Atari XL/XE z 64 KB pamięci.

Edytor jest zrobiony pod ten jeden plik. Inny plik z tą grą (inny crack, inna wersja) zostanie odrzucony z komunikatem, bo pamięć gry jest tam ułożona inaczej.

## Obsługa

1. **Wczytaj XEX** (albo przeciągnij plik na stronę). Edytor zapamiętuje plik i zmiany w przeglądarce, więc po ponownym otwarciu strony praca jest na miejscu.
2. **Karta "Piramida".** Pokazuje wszystkie 102 komnaty ułożone według przejść, piętra od góry. Najedź i kliknij komnatę, aby ją wybrać, kliknij dwukrotnie, aby ją edytować.
   - Żółta ramka oznacza komnatę startową. Przycisk **Ustaw jako startową** zmienia, gdzie gra się zaczyna (przydaje się też do testów).
   - Przyciemnione komnaty leżą na ciemnych piętrach: w grze widać w nich mury tylko z pochodnią.
   - Komnaty, które w grze zajmują to samo miejsce co inne (zamienniki w labiryncie), są na samym dole mapy.
   - Panel **Pamięć** pokazuje, ile miejsca zajmują dane komnat. Dane muszą się zmieścić w 2139 bajtach, tyle co w oryginale (jeden wróg albo przedmiot to 3 bajty). Żeby dodać coś w jednej komnacie, gdy miejsca brakuje, usuń coś w innej.
3. **Karta "Komnata"** ma trzy tryby:
   - **Układ (kafle).** Lewy przycisk maluje wybranym kaflem z palety, prawy pobiera kafel spod kursora. Opcja "kolor 4" daje kafel z ustawionym najstarszym bitem (inny kolor cegieł).
     - Uwaga: gra ma tylko 17 układów (rysunków 40×24 kafle), a komnat jest 102. Jednego układu używa wiele komnat, więc malowanie zmienia je wszystkie; edytor wypisuje, których to dotyczy.
     - Żeby zmienić tylko jedną komnatę, przełącz jej układ na inny z listy albo przerób komnaty tak, żeby dany układ miała tylko ona.
   - **Przedmioty i drzwi.** Lista przedmiotów komnaty: rodzaj, kolumna, wiersz, od którego poziomu się pojawia. Przedmiot przesuwasz przeciągając go na rysunku albo klikając puste miejsce, gdy jest zaznaczony.
   - **Wrogowie.** Lista wrogów: rodzaj (typ szesnastkowo albo z listy typów występujących w grze), pozycja startowa x/y, od którego poziomu.
     - Każda komnata ma co najmniej jeden wpis wroga; niepotrzebnego ustaw na "od poziomu 4".
     - Zmiana rodzaju zwykle działa (np. czaszka na węża), ale nie zawsze. Nowy układ wrogów sprawdź w emulatorze.
4. **Ustawienia komnaty** (prawy panel karty "Komnata"):
   - **numer układu**;
   - **odbicie lewo↔prawo**: gra rysuje układ odwrócony w poziomie od 5. wiersza w dół;
   - **drabina do góry / drabina w dół**: drabina na środku komnaty, którą gra dorysowuje na układzie;
   - **4 przejścia**: komnata po lewej, po prawej, wyżej i niżej. Opcja "zmieniaj przejście w obie strony" od razu poprawia przejście powrotne w sąsiedniej komnacie.
5. **Karta "Zapis i informacje".**
   - **Zapisz XEX** tworzy plik `<nazwa>_edit.xex`. Przed zapisem edytor rozpakowuje nowy plik jeszcze raz i porównuje go z tym, co miało w nim być.
   - **Kopia zmian (.json)** zapisuje tylko Twoje komnaty i układy, żeby przenieść pracę na inny komputer albo do innej przeglądarki.
   - **Cofnij wszystkie zmiany** wraca do oryginału.

**Ctrl+Z** albo przycisk **Cofnij** cofa ostatnią zmianę na karcie "Komnata".

## Jak zbudowana jest gra (dla ciekawych)

### Plik XEX

| Segment | Zawartość |
|---|---|
| `$8000-$B7FF` | koniec spakowanych danych; kod INIT z `$2400` kopiuje go pod ROM systemu (`$C000-$CFFF`, `$D800-$FFFF`) |
| `$ACA7-$BFFF` | początek spakowanych danych |
| `$00D0-$00D5` | adres początku danych, koniec etapu 1, adres startu (`$0480`) |
| `$2400-$25E1`, `$2600-$261D` | depacker (przenoszony do `$0700`) i jego start |

Packer ma dwa etapy:

1. **Etap 1, LZ w strumieniu bitów** (bity od najstarszego). Bajt nagłówka mówi, ile dodatkowych bitów ma przesunięcie (tu 3, czyli przesunięcie do 2047). Potem idą na zmianę:
   - literał: bit 0 i 8 bitów;
   - kopia: bit 1, długość (`0` = 2; `1` + 2 bity = 3-5, kolejne pary bitów `11` dodają po 3, po trzech `11` jest pełny bajt długości), 8 bitów przesunięcia i 3 bity starszej części przesunięcia.

   Wynik ląduje od `$0A00`, a potem jest przenoszony na koniec pamięci.
2. **Etap 2, RLE.** Bajt sterujący:
   - `1-127`: tyle powtórzeń następnego bajtu;
   - `$81-$FE`: tyle bajtów przepisanych;
   - `$00` / `$FF`: to samo z 16-bitową długością.

   Wynik ląduje od `$0480` z pominięciem stron `$07-$08` (depacker) i `$D0-$D7` (układy I/O). Na koniec całość jest przesuwana o stronę w górę.

Po rozpakowaniu intro cracka (`$C000`) pyta o nieskończone życia, przenosi `$1E00-$BFFF` do `$0E00-$AFFF` i uruchamia grę od `$0E00`. Wszystkie adresy poniżej to adresy gry po tym przeniesieniu (w pliku są o `$1000` wyżej).

### Komnaty

- **Lista komnat:** `$3CE8-$4542`, 102 rekordy jeden po drugim, w kolejności pięter.
- **Układy:** 17 × 1 KB od `$6C00` (ekran 40×24 w trybie ANTIC 4).
- **Zestaw znaków:** `$56C6` (kopiowany do `$0400`).
- **Kolory pięter:** `$1ACA`.

Rekord komnaty (k = liczba wrogów − 1, n = liczba przedmiotów):

| Bajty | Znaczenie |
|---|---|
| 0 | bity 0-4 numer układu; bit 5 drabina w dół; bit 6 drabina do góry; bit 7 odbicie lewo↔prawo |
| 1-8 | adresy komnat obok: lewo, prawo, góra, dół (0 = brak) |
| 9 | k |
| 10 ... 10+k | x wrogów (w punktach 0-159) |
| 11+k ... 11+2k | y wrogów (linie obrazu) + bity 0-1: od którego poziomu |
| 12+2k ... 12+3k | typ wrogów (bit 0 aktywny, bity 2-3 ruch, bit 4/5/7 wygląd) |
| 13+3k | n |
| dalej n × 3 | przedmiot: x (kolumna × 4), y (`$28` + wiersz × 8 + poziom), typ |

Typy przedmiotów:

| Typ | Przedmiot |
|---|---|
| `0`-`6` | amulet, klucz czerwony, niebieski, biały, pochodnia, miecz, klejnot (2×2 kafle) |
| `$80` | migający łańcuch (bariera, kolumna 4 kafli) |
| `$81`-`$83` | drzwi czerwone, niebieskie, białe (kolumna 4 kafli; otwiera je klucz w tym samym kolorze) |
| `$84`, `$85` | pusta kolumna (przejście) |
| `$10` | dziura 16×5 kafli |
| `$08` | znacznik specjalny |

Bity `$40`/`$20` typu gra ustawia sama w trakcie gry (zebrany przedmiot, otwarte drzwi).

Adresy w kodzie, które edytor poprawia po zmianie rozmiaru komnat:

| Adres | Co wskazuje |
|---|---|
| `$1135/$1139` i `$1455/$1459` | komnata startowa |
| `$1C32/$1C38` | ostatni rekord |
| `$1982/$198A` | pierwsza ciemna komnata |
| `$1AB8` | pierwsze komnaty pięter i koniec listy |

6

(6 odpowiedzi, napisanych Sprzęt - 16/32bit)

Mam zewnętrzny na 3 karty microSD jakby co. Wewnętrznego niestety nie posiadam.

Trzymam kciuki!

Walcz. W retro często cały FUN to jest właśnie zabawa sprzętem, a nie kiedy wszystko działa :)
W razie czego kontakt mailem do mnie masz.
A wiem, ze wlutowałeś podstawkę pod Flash/Eprom - co planujesz dalej działać?

Jak chcesz "ładniejszy" ACSI2STM, to:
https://allegrolokalnie.pl/oferta/acsi2 ... a-karte-sd

A jak chcesz Ultrasatana, to mam gdzieś od Artika bodajże i tak w sumie to nie bardzo używam. Wydaje mi się, że 280zł płaciłem więc w takiej cenie + etykieta mogę się pozbyć.

C4? Zrób fotkę...
Obwód RC to R1 C7

Dodanie 10uF równolegle do któregokolwiek 100nF to nie jest dużo roboty więc można dać, ale tu coś całkiem nie bangla - banki się nie przełączają czy coś. Możesz spróbować zmienić elementy RC od stałej czasowej - wywal dla testu ten kondensator albo zmień na 100pF jeśli masz.
A jeśli nie masz ochoty z tym walczyć, to podeślij - rzucę okiem.

12

(1 odpowiedzi, napisanych Sprzęt - 8bit)

Nie wiem do jakiego działu powinien trafić ten post, więc wrzucam po prostu do Sprzęt 8-bit.
Jakiś czas temu walczyłem z cartem DiamondGOS 3 - uparłem się, żeby odpalić go na fizycznym carcie zbliżonym do tego z epoki. Wszystkie opisy w necie twierdzą, że praktycznie nie różni się on od carta SpartaDOS X za wyjątkiem zmienionego adresu. No ale pomimo wielu walk DiamondGOS nie śmigał na carcie od Sparty. I tu z pomocą przyszedł Claude i rozwiązał zagadkę:

"Zrobiłem teraz dokładniejsze przeszukanie całego pliku DiamondGOS v3.rom pod kątem wszystkich trybów adresowania (nie tylko prostego LDA/STA, ale też indeksowanego ,X i ,Y) pod adresami $D5D0-$D5D7. Wynik jest jednoznaczny:

LDA $D5D5          (x8 - w końcówce KAŻDEGO banku, wektor startowy)
LDA $D5D1
LDA $D5D0           (x2)
LDA $D5D0,Y         (x3, różne miejsca w banku 2, 6, 7)
LDA $D5D0,X         (x4, różne miejsca w banku 2, 6)

Czyli w kodzie jest wielokrotnie użyty idiom LDA $D5D0,X - gdzie X trzyma numer żądanego banku (0-7) - to jest ewidentnie ogólny, celowo zaprojektowany sposób "przełącz na bank X" używany w wielu miejscach programu, nie jednorazowy przypadek. W całym 64 KB pliku nie ma ani jednego zapisu (STA/STX/STY) pod $D5D0-$D5D7 - jedyny zapis to STA $D5DC, czyli do zakresu disable (D8−DF).

To rozstrzyga sprawę: DiamondGOS naprawdę różni się od Sparty nie tylko adresem, ale też mechanizmem - select banku robi przez odczyt, a nie zapis (disable owszem, przez zapis - w tym akurat Sparta i Diamond są zgodne). Informacja krążąca w sieci, że różnica to "tylko adres", jest najwyraźniej uproszczeniem/błędem - pewnie ktoś porównał tylko zakresy adresowe z posta na AtariAge, bez sprawdzania polaryzacji R/W na prawdziwym sprzęcie."

https://www.atari.org.pl/forum/misc.php?action=pun_attachment&amp;item=13759

Pisaliśmy już na ten temat na PW - ciężko będzie jednoznacznie stwierdzić, dlaczego konkretnie na Twojej konsoli nie śmiga - u mnie na czarnej konsoli chodzi bez problemu, a także na 2600 Junior i na 7800+
Zrób zdjęcie tych pasów, może coś przyjdzie do głowy.
Możesz delikatnie "ruszyć" wartości elementów obwodu RC

14

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Ooooo!!
I takie zastosowanie AI to ja lubię :)

Będzie testowane. Dzięki!

A zasilacz? Jeśli to jakiś nowszy impulsowy, to może być jeszcze pętla masy czy coś. Ja tak, mam , kiedy do ST podłączam UltraSatana zasilanego z ładowarki USB.

16

(22 odpowiedzi, napisanych Sprzęt - 16/32bit)

Na pierwszy strzał LPC822 lub potem LPC845 bo ma "lepszą" obudowę. Podpatrzone z carta BountyBob na A7800 - skoro tam gra to może coś z tego będzie.

17

(22 odpowiedzi, napisanych Sprzęt - 16/32bit)

Do cartów z grami na A7800 chciałem zamontować sobie parę sztuk wiec raczej mnie interesuje coś w scalaku za 15zł tak bardziej...

18

(22 odpowiedzi, napisanych Sprzęt - 16/32bit)

Nie ukrywam, że chodzi mi to po głowie. Problem w tym, że ciężko będzie znaleźć w 2026 roku Xilinxa lubiącego 5V, który ma odpowiednią ilość makrocel i sensownych rozmiarów obudowę. A na te nowsze + translacja poziomów logicznych to jeszcze się nie porywam...
Za to zrobiłem implementację Pokeya (na czymś innym niż CPLD), muszę zamówić scalaki i sprawdzić :)

19

(22 odpowiedzi, napisanych Sprzęt - 16/32bit)

To wnętrze z linku jest super zrobione, w wysokiej rozdzielczości, ale nie da się tego pobrać, gdyż jest na silniku google maps.
Poświeciłem chwilkę i tu jest pobrana lokalna kopia w postaci pliku png:
https://drive.google.com/file/d/11vWSev ... drive_link

Nie mogę wstawić u nas na forum ze względu na ograniczenie rozmiaru pliku.

20

(23 odpowiedzi, napisanych Sprzęt - 16/32bit)

I jeszcze popastwiłem się nad tym "Eifflem" (w cudzysłowie, bo nie wiem, czy wciąż można go tak nazywać).

Kiedyś znalazłem taką stronkę:
https://oldcomputer.info/hacks/mega_key/index.htm
Zbudowałem, wgrałem wsad i działało to jakoś źle - dwuklik nie działał itp. Więc znów zaprzęgłem mojego nowego przyjaciela Klaudiusza, który łaskawie wszystko naprawił i wprowadził nasze fixy do przycisku fire.
Tak powstała wersja, do której pliki załączam.

Dla odmiany jest na Atmega328 :)

Low Fuse (LFUSE): 0xFF (Zewnętrzny kwarc wysokiej częstotliwości, szybkie uruchamianie)
High Fuse (HFUSE): 0xD7 (Zachowanie EEPROM przy czyszczeniu układu, włączony interfejs SPI)
Extended Fuse (EFUSE): 0xFD (Detekcja spadku napięcia BOD na poziomie 2.7V - chroni przed zawieszaniem)

https://www.atari.org.pl/forum/misc.php?action=pun_attachment&amp;item=13729

21

(20 odpowiedzi, napisanych Sprzęt - 16/32bit)

W razie czego też się piszę na 1szt (trochę późno).

Kolor nie gra roli dla mnie, złocenie chyba nie jest tam potrzebne (brak złącz krawędziowych?), więc również mi obojętnie.

Ja też sprawdzałem na CRT i na LCD, na różnych kablach i sprawdzałem kilka Juniorów i zawsze efekt był ten sam. Nie wiem, co może wywoływać taki efekt - może jakieś "nowocześniejsze" zakłócenia akurat w tym paśmie, może degradacja jakichś elementów. Też wstawiam video-mody i dopiero "jakoś" to wygląda.

Albo mi się wydaje albo wszystkie Juniory, które trafiłem, miały taki problem jak opisujesz. Mam wrażenie, że ten modulator w Juniorach jest jakiś taki "oszczędny".
Za to w klonach obraz po RF potrafi być naprawdę super.

24

(23 odpowiedzi, napisanych Sprzęt - 16/32bit)

Tak, wsad zawiera Twoją poprawkę oraz poprawki do gry "Return to Genesis" i "Goldrunner" czyli jest chyba najbardziej "aktualnym" wsadem. Ja przetestowałem te wsady tylko na:
- Goldrunner - tu nie działał fire nawet z Twoją poprawką
- Goldrunner II - tu było OK z Twoją poprawką
- Return to Genesis - tu nie działał fire
- Prehistorik

Te gry miałem akurat na karcie w Goteku, zakładam, że jak na nich działa, to i na innych działa, bo w teście joysticka jest OK

25

(23 odpowiedzi, napisanych Sprzęt - 16/32bit)

No to jeszcze dorzucam wsad do PIC16F886 - te układy również są dostępne w TME w przyzwoitej cenie. Tu były przygody z programowaniem - PICKit nie chciał tego programować - zaczynał i jakby się zawieszał. Więc przy każdej iteracji programowałem układ za pomocą TOP3000 - układ się programował ale interfejs nie działał. W końcu doszliśmy (z Claudem) do tego, że trzeba napisać program testowy z miganiem diodami LED  i on także nie chciał działać. Finalnie okazało się, że TOP3000 nie programuje poprawnie fusebitów układu PIC16F886. Przeszedłem na TL866-II i robota poszła z marszu.

A na koniec dorzucam wsad do PIC16F876 czyli takiego jak był stosowany oryginalnie w Eifflu, żeby każdy posiadacz mógł sobie wrzucić wsad, w którym Fire działa (mam nadzieję) we wszystkich grach. Tu bez problemu zadziałał PICKit. Usunięta jest obsługa LCD, gdyż nawet Claude nie poradził sobie z wykombinowaniem odrobiny miejsca.

Fusebity są zawarte w plikach HEX.