128- and 64-color palettes can share color memory with other palettes (saturnringlib/srl_cram.hpp:173-264)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- cpp
- Ambito
- computer-graphics
Direzione di ricerca
Il bug si trova in saturnringlib/srl_cram.hpp, righe 173-264, in GetBankUsedState, SetBankUsedState e GetFreeBank. Verifica le espressioni di shift per 128 e 64 colori rispetto all'indicizzazione dei blocchi da 16 colori, poi fai in modo che GetFreeBank chiami GetBankUsedState invece di ripetere le maschere. È completato quando l'allocazione di una palette a 16 colori seguita da una a 128 colori marca i blocchi 2-9 e la successiva allocazione a 16 colori li salta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
- What this is: CRAM (color RAM, where palettes live) is tracked with a bit mask, one bit per 16-color block.
- Problem: The bit shift is wrong. A 128-color bank uses (bank&1)<<1 where it needs <<3, and a 64-color bank uses (bank&2)<<2 where it needs (bank&3)<<2. Example: allocate one 16-color palette (bank 0), then a 128-color palette. The 128-color palette lands at colors 128–255 but only marks blocks 2–9 as used. The next 16-color palette can then get block 10, which sits inside the 128-color palette.
- Fix: Correct the two shifts in GetBankUsedState and SetBankUsedState. Make GetFreeBank call GetBankUsedState instead of repeating the masks, since the copied masks are where the bug lives.
- Lingua principale
- C++
- Stelle
- 90
- Fork
- 5
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ReyeMe/SaturnRingLib
-
bug required hardware test
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ReyeMe/SaturnRingLib#148 ·
-
bug required hardware test
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ReyeMe/SaturnRingLib#146 ·
-
bug required hardware test
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
ReyeMe/SaturnRingLib#145 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
ReyeMe/SaturnRingLib#144 ·
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
ReyeMe/SaturnRingLib#149 ·
Tutte le issue di ReyeMe/SaturnRingLib
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
KLayout/klayout#2554 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
LaneDibello/Kotor-Patch-Manager#375 ·
I maintainer di solito rispondono entro 2 giorni