Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Przerobienie dekodera
Autor Wiadomość
Ra_ Offline
Budowniczy
*

Liczba postów: 91
Dołączył: Nov 2015
Reputacja: 7
Post: #1
Przerobienie dekodera
Obecnie dekoder rozróżnia linie parzyste i nieparzyste. Moim pomysłem na usprawnienie było użycie flag bitowych. Czyli dla każdej linii można by określić, czy ma jechać prosto, czy na bok.

Udało mi się wczoraj wrzucić ATS na disassembler. Jednak nie jest to takie proste, jakby się wydawało, żeby znaleźć potrzebny fragment. Dlatego pytanie mam, czy zachował się jakikolwiek kod obsługi rozjazdów, który można by porównać z kodem assemblerowym? Ewentualnie w ostateczności wystarczyłby mi opis (np. chodzi o to, czy parzystość była określona przez &1 czy jako %2; czy rozpoznanie typu rozjazdu było robione przez case, czy inaczej).

Rozjazd ma 4? typy od 0 do 3 (tyle na pewno), dekoder jest dla 3. Jest to zapisane na +24 (+96) od początku rozjazdu, dodatkowe dane są w +25 (+100), ale informacja o sprężynie jest na +22 (+88). Na podstawie tych informacji brana jest wartość z tablicy przełączeń +6 (+24).

Rainsted — najnowsze informacje
Własna masarnia — projekt technologiczny masarni
(Ten post był ostatnio modyfikowany: 26-02-2016 10:45 przez Ra_.)
26-02-2016 08:28
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Ra_ Offline
Budowniczy
*

Liczba postów: 91
Dołączył: Nov 2015
Reputacja: 7
Post: #2
RE: Przerobienie dekodera
Dobra, chyba sobie znalazłem.

Kod:
0x4112FD: 83786003               CMP         DWORD PTR [EAX+0x60],0x3
0x411301: 7575                   JNE         0x411378           ; (*+0x77)

Kod:
0x411358: 8B4510                 MOV         EAX,DWORD PTR [EBP+0x10]; <==0x0041130A(*-0x4E)
0x41135B: 83E001                 AND         EAX,0x1
0x41135E: 85C0                   TEST        EAX,EAX
0x411360: 740C                   JZ          0x41136E           ; (*+0xE)
0x411362: 8B4508                 MOV         EAX,DWORD PTR [EBP+0x8]
0x411365: C7405800000000         MOV         DWORD PTR [EAX+0x58],0x0
0x41136C: EB0A                   JMP         0x411378           ; (*+0xC)
0x41136E: 8B4508                 MOV         EAX,DWORD PTR [EBP+0x8]; <==0x00411360(*-0xE)
0x411371: C7405801000000         MOV         DWORD PTR [EAX+0x58],0x1

Przerabiać?

Rainsted — najnowsze informacje
Własna masarnia — projekt technologiczny masarni
26-02-2016 10:47
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Edward Offline
Administrator
*******

Liczba postów: 498
Dołączył: Jan 1970
Reputacja: 21
Post: #3
RE: Przerobienie dekodera
znając siebie to if(nr%2)

>Rozjazd ma 4? typy
pewnie tak, ale już nie pamiętam

Nie wiem czy jest sens skupiać się na ATS1. Jeśli wszyto pójdzie dobrze to na wakacje będzie ATS2. Poza tym można by popracować nad przebudowa interfejsu Rainsted'a, żeby był bardziej na czasie i np. wszytko by się dało zrobić myszą.
26-02-2016 20:33
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
elot360 Offline
Użytkownik chory na głowę
*

Liczba postów: 188
Dołączył: Feb 2015
Reputacja: 5
Post: #4
RE: Przerobienie dekodera
Edward może podaj orientacyjną datę przy najgorszym możliwym scenariuszu (Zakładając takowy któremu dasz radę i go kiedyś przebrniesz), to będzie się wtedy fajniej czekało bo jak dostaniemy wcześniej ATS to będziemy bardziej szczęśliwi Tongue
26-02-2016 20:49
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
lukasn26 Offline
Mam kartę miejską na wszytkie linie :P
**

Liczba postów: 555
Dołączył: Jan 2014
Reputacja: 12
Post: #5
RE: Przerobienie dekodera
A ja tam czekam cały czas na ukł. tekstur na N-kę od Kafara coby na nią tex zrobić Tongue

[Obrazek: 90a9698b9335c73bgen.png]
https://www.facebook.com/profile.php?id=100011750463158
26-02-2016 20:57
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Ra_ Offline
Budowniczy
*

Liczba postów: 91
Dołączył: Nov 2015
Reputacja: 7
Post: #6
RE: Przerobienie dekodera
Skupiać się nie chcę, ale jeśli komuś by się chciało poprogramować dekodery na sceneriach celem uruchomienia wielu linii jednocześnie (w tym np. zjazdu z dowolnego miejsca do zajezdni), to dałbym radę przygotować te kilkanaście bajtów kodu maszynowego, które byłyby potrzebne do obsłużenia tego. Flagi dekodera można by trzymać w kilku miejscach, w tym również w typie (np. można założyć że każda wartość różna od 0, 1 i 2 to jest dekoder), ale jest też również dużo miejsca w innych bajtach (np. nieużywany chyba stan drugiej zwrotnicy).

W Rainsted jestem nadal na etapie określania jakie obiekty będą potrzebne oraz geometrii i powiązań (np. do dopracowania są ściany lasów z przyklejaniem do terenu, a do zrobienia prawie od zera łuki koszowe). Interfejs jest kwestią drugorzędną. Na razie poprawiam scenerię — muszę posiedzieć nad profilami pionowymi i optymalizacją łączenia z trójkątami terenu, a potem chciałbym zrobić słupy z regulowanym miejscem zawieszenia drutu.

Rainsted — najnowsze informacje
Własna masarnia — projekt technologiczny masarni
26-02-2016 20:58
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 




Advanced Tram Simulator | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS