cudne kwiatki ;)
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
HighWire 0.5.0 Beta 4 Przeglądarka internetowa dla Atari z obsługą 68000, ColdFire oraz wieloma nowymi funkcjami.
Gearlynx 1.2.34 Wydano nową wersję 1.2.34 emulatora Atari Lynx z licznymi usprawnieniami i nowymi funkcjami.
Port gry Toadies na Atari STE Toadies, turowy klon Worms z Amigi, trafia na Atari STe dzięki projektowi KtZ i AGT.
Wonder Boy na Atari z VBXE Pierwszy świat konwersji hitu z automatów na małe Atari z kartą VBXE jest już grywalny.
RASTER Music Tracker 1.36.0 Nowa wersja popularnego programu RASTER Music Tracker 1.36.0 m.in. wsparcie dla skryptów i dużo, dużo więcej!
atari.area forum » Software, Gry - 8bit » Doom (AI, VBXE, Rapidus/Antonia)
Strony Poprzednia 1 … 4 5 6 7 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
cudne kwiatki ;)
;--------------------------------------------------------------
; snd_irq -- Timer-1 handler: ONE 4-bit sample for every live voice, then the
; timer is switched off if that emptied the mixer. The OS enters it with CLD +
; JMP (VIMIRQ) and does NOT save anything, hence the pha/pla.
; 2026-09-29 (drac030): X AND Y are pushed at full width -- the body's
; sep #$30 clears both high bytes of the code it interrupted.
;--------------------------------------------------------------
.proc snd_irq
rep #$10 ; X/Y 16-bit first, pushed at that width
phx
phy
sep #$30 ; 8-bit A/X/Y for the body
pha
.ifdef ANTONIA2
phb ; DBR = $01 inside the card's divide (math.asm
phk ; udiv24): bank 0 for the absolute operands,
plb ; or POKEY is never acked (K = 0 here)
.endif
lda IRQST_R
and #$01
beq ?mine ; bit0 = 0 -> Timer-1, ours
lda PORTB ; foreign IRQ. snd_old_irq points INTO THE
lsr ; OS ROM, and the frame loop runs with it
bcs ?chain ; banked OUT (rom_out + urom_init), so the
lda POKMSK_R ; old chain jumped into whatever RAM lies
sta IRQEN_R ; under $E000-$FFFF and, never acking, came
jmp ?out ; straight back -- the freeze the 2026-08-07
; trace caught parked here.
?chain
.ifdef ANTONIA2
plb
.endif
pla ; A (one byte), then Y and X at the width
rep #$10 ; they were pushed; the OS chain gets
ply ; 8-bit X/Y
plx
sep #$10
jmp (snd_old_irq)
?mine
stz IRQEN_R ; ack Timer-1: drop bit 0, then restore it.
lda POKMSK_R ; POKMSK is $01 here -- this IS its timer,
sta IRQEN_R ; and snd_init/snd_disarm are the only
; writers (it holds $00 or $01, never
; more) -- so `and #$FE` of it is 0
ldx #SND_VTOP
?voice lda sv_act,x ; 0 = idle, 1 = playing
beq ?next
; --- WHICH NIBBLE: bit 7 of the voice's fraction. sv_frc counts the ...
lda sv_cur,x
bit sv_frc,x ; N = bit 7 (A untouched): the LOW nibble
bmi ?nib ; is current
lsr ; (NOT `?out` -- that is the handler's own
lsr ; exit label further down, and reusing it
lsr ; silently pointed the empty-mixer sweep's
lsr ; `beq ?out` back INTO this loop)
?nib and #$0F
ora #$10
bit sv_side,x ; snd_out INLINE on the sample path
bmi ?so_r ; (2026-09-15: the jsr/rts went, ~3,960
; times a second while anything plays).
sta.l AUDC1_R,x ; 2026-09-22 (rapidus-bus-timing): long,x has no
bvs ?so_d ; dummy read of POKEY before the store -- abs,x
?so_r sta.l AUDC1_R+$10,x ; paid a second chip cycle for it
?so_d ; output ASAP -- less jitter. STEREO
; (2026-08-31): the voice's side routes ...
lda sv_frc,x
clc
adc sv_stp,x
sta sv_frc,x
bcc ?next ; still inside this byte
inc sv_rl,x ; count UP toward $0000 = sample finished
bne ?adv
inc sv_rh,x
bne ?adv
inc sv_fin ; a voice just went quiet -- the ONLY way
; the mixer can empty, so the sweep below
; is owed exactly here (see ?any)
lda #0 ; done: this voice only. The timer belongs
sta sv_act,x ; to ALL of them, so only the sweep after
jsr snd_out ; the loop may switch it off. snd_out's
beq ?next ; (always: BIT with A=0 leaves Z=1, and
; both stores keep it -- the contract
; this beq was already leaning on)
?adv inc sv_al,x ; advance this voice's read address
bne ?fetch
inc sv_ah,x ; (a sound never crosses a bank end, so
; sv_ab is never touched -- wadsound.py)
; --- fetch the next byte.
?fetch jsr snd_fetch
?next dex
dex
bpl ?voice
; --- did that empty the mixer?
lda sv_fin
beq ?out
stz sv_fin
ldx #SND_VTOP
lda #0
?any ora sv_act,x
dex
dex
bpl ?any
cmp #0
bne ?out
; 2026-09-22 idiom: snd_disarm inlined (-12; its
stz POKMSK_R ; live body is these two stz -- see the proc)
stz IRQEN_R
?out
.ifdef ANTONIA2
plb
.endif
pla ; A ...
rep #$10 ; ... then Y and X at the FULL width the
ply ; entry pushed them
plx
rti ; (RTI's pulled P puts the real widths back)
.endpDBR = $01 inside the card's divide (math.asm
; udiv24): bank 0 for the absolute operands,
; or POKEY is never acked (K = 0 here)
Aha, hehe, no tak, chodzi o zmienne tymczasowe
?q_hi .word 0
?q_lo .word 0
z modułu udiv24_v2.asm. Ale one chyba pochodzą z czasów, kiedy ten kod był w pierwszym segmencie 64k (banku 0), trzeba te dwie zmienne tam przenieść teraz. To pozwoli na pozbycie się rozkazów phb, phk, plb z miejsca wywołania udiv24 i z procedury obsługi IRQ.
szybka poprawka, naprawiono również efekt rakiety, który nie wyświetlał się prawidłowo na filarach.
FPS:
a) wersja regularna: 7.69-8.00
b) wersja na Antonię II: 8.33-8.69
Ta druga mogłaby w ramach początkowych testów sprzętu sprawdzać też, czy istnieje ten sprzętowy kalkulator do mnożenia i dzielenia, z którego zamierza korzystać.
Edit: są kwiatki na ścianach
https://turiecfoto.sk/atari/doom-test/d ... -2026a.zip
ok, naprawiono... "lost-soul" nie działało, również naprawiono
Ta wersja, póki co, na oko działa bez zarzutu. Dobra robota!
zrzucam wersję dla Rapidusa teraz, ciekawe ;)
...raz tylko przywiesiłem się w drzwiach - otworzyłem drzwi i tam zostałem celowo. Po tym jak się zamknęły to mogłem się obracać, ale nie mogłem nigdzie iść. Dopiero ponowne otwarcie drzwi uwolniło "gracza"
raz tylko przywiesiłem się w drzwiach
Mnie się udało dwa razy wpaść do wnętrza lewej ściany schodów w pierwszej komnacie ("lewej", patrząc w stronę pięterka). Też tylko się można wtedy obracać, ale w przeciwieństwie do drzwi nie da się tam niczego otworzyć, zatem taka wpadka to jest koniec danej przygody.
zacinanie się schodów było problemem z powodu nieprawidłowego obliczenia środka podłogi.
naprawiłem 5 rzeczy przy drzwiach, teraz drzwi zostawiają plamę krwi po martwym wrogu, można je otwierać/zamykać nawet w ruchu i nie można już w nich utknąć itd itd. :D
Zauważyłem jeszcze jeden mały błąd: czasami wzięcie karafki denaturatu ("health bonus"), pierwszej lub drugiej na poziomie E1M1 tak jakby nie generuje sygnału dźwiękowego. To wystąpiło mi raz w wersji dzisiejszej i raz w którejś poprzedniej.
Dzisiejsza wersja: byłem w stanie wziąć znalezioną dubeltówkę (shotgun), mimo że już jedną miałem. W poprzednich wersjach drugiej broni tego samego typu nie chciał brać.
Zastanawia mnie też, jak ten program oblicza czasy przejścia etapów, które wyświetla na końcu, skoro jedyny licznik czasu, jaki tu widzę, to jeden bajt RTCLOK3. To się przepełnia po 5 sekundach, a zważywszy że renderowanie klatki zajmuje od kilku do kilkunastu ramek, nie widzę dużych szans, żeby pomiar czasu był dokładny.
I faktycznie, zwiedzałem sobie poziom E1M2 (ten z wielkim labiryntem), byłem wszędzie, a na końcu wyświetliło, że czas przejścia był 2 minuty z groszami....
"Zauważyłem jeszcze jeden mały błąd: czasami wzięcie karafki denaturatu ("health bonus"), pierwszej lub drugiej na poziomie E1M1 tak jakby nie generuje sygnału dźwiękowego. To wystąpiło mi raz w wersji dzisiejszej i raz w którejś poprzedniej.
Dzisiejsza wersja: byłem w stanie wziąć znalezioną dubeltówkę (shotgun), mimo że już jedną miałem. W poprzednich wersjach drugiej broni tego samego typu nie chciał brać."
to na antonii ii?
Obie rzeczy na Rapidusie. Dubeltówka jest powtarzalna, pierwszą biorę na E1M1, drugą na E1M2.
Brak dźwięku poprzednio wystąpił też na Antonii.
EDIT ad dubeltówka: doczytałem, że tak ma być, tzn. druga i każda kolejna broń tego samego typu powinna być potraktowana jako paczka amunicji. Więc, o ile tak jest, to jest poprawka w stosunku do tego, co było poprzednio.
błędy i błędy.. :D szybka poprawka
BTW, czy da się załadować ATR ze spartan dosa? mam side3
wprost spod Sparta DOS X nie.
Jedyna opcja to w przypadku IDE Plus - uruchomienie poprzez IPLD.COM, choć ten loader przekazuje po prostu plik do uruchomienia poprzez BIOS IDE Plus.
... no i pod IDE Plus można też takiego ATR podmontować jako urządzenie Dx:
EDIT:
ATR można odpalić ze SIDE3, ale potrzebujesz do tego U1MB i tam masz coś, co nazywa się "PBI BIOS". Jak to poprawnie skonfigurujesz, to możesz z loadera SIDE odpalać pliki ATR - jeśli oczywiscie odczyt sektora odbywa się przez procedury OS. Gierki, które portujesz będą się ładować, bo tak właśnie czytają / zapisują dane
już jest :) DOOM A8 Pico Cart
https://forums.atariage.com/topic/39324 ... pico-cart/
@w1k: w sumie na Antonii II szybkość ładowania plików spod SpartaDOS X sięga 400 KB/s. Natomiast np. boot ATR-a na IDE+ to tylko ok. 30 KB/s. Gdyby Doom umiał się ładować pod DOS-em, to i na IDE+ byłoby pewnie szybciej, i na SIDE3 byłoby łatwiej.
Oczywiście, niczego nie sugeruję :)
Szkoda, chociaż nagrywanie przez SIO2SD jest teraz całkiem szybkie, wgrywanie z SDX byłoby świetne. Mam dwa Atari 1-u1mb, stereo, VBXE... 2-antoniaII, VBXE). Ale i tak super... PICO Doom jest ciekawy, prawdopodobnie wykorzystuje zalety sprzętu PICO.
Jeszcze o udiv24_v2.asm, zmienne zostały przeniesione:
?q_hi = UDQ_VARS
?q_lo = UDQ_VARS+2
pod adres $0EF9:
UDQ_VARS = $0EF9
Ale lepiej by było je przenieść na stronę zerową, ponieważ obie są używane w pętli, pozwoliłoby to urwać z najgorszego przypadku tego dzielenia jeszcze do kilkunastu cykli.
Na stronie zerowej cały blok od $80 do $FF jest zajęty, ale podczas rozgrywki jako zmiennych tymczasowych spokojnie można użyć 32 bajtów od $20 do $3F (ZIOCB i zmienne wewnętrzne SIO), a także 16 bajtów od $70 do $7F (głównie zmienne sterownika S: używane przez DRAWTO oraz wektor definicji klawiatury pod $79-7A, którego chyba Doom nie potrzebuje specjalnie).
PICO Doom jest ciekawy, prawdopodobnie wykorzystuje zalety sprzętu PICO.
Rozwiązanie analogiczne do Dooma na SideCarta do ST, Atari robi tylko za przystawkę/wyświetlacz, jak REU z C64 ;-)
To jednak Doom działający i liczony na CPU siedzącym w Atari i zintegrowanym z architekturą komputera o wiele bardziej mnie kręci niż Doom na przystawce ;-)
https://turiecfoto.sk/atari/doom-test/d ... 0-2026.zip
ok, poprawiono, jeszcze kilka oszczędności cykli, fps 10,00-10,52
https://www.youtube.com/watch?v=2NEOh1MXvog
to co w grach na C64 jest najlepsze, to ekran tytułowy ;)
Strony Poprzednia 1 … 4 5 6 7 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Software, Gry - 8bit » Doom (AI, VBXE, Rapidus/Antonia)
Wygenerowano w 0.089 sekund, wykonano 21 zapytań