Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not passing mgba memory tests #94

Open
michelhe opened this issue May 17, 2020 · 3 comments
Open

Not passing mgba memory tests #94

michelhe opened this issue May 17, 2020 · 3 comments
Labels

Comments

@michelhe
Copy link
Owner

image

@xTibor
Copy link
Contributor

xTibor commented May 18, 2020

The failing S8 (U16 load) tests may be the most visible one among these, I have a feeling those ones are causing the striped graphics corruptions in Doom 2 and in the demoscene stuff from SFC.

@michelhe
Copy link
Owner Author

I think doom 2 specifically has something to do with the fact that I'm allowing u8 stores to VRAM.

@michelhe michelhe mentioned this issue May 18, 2020
@michelhe
Copy link
Owner Author

From GBATek

Writing 8bit Data to Video Memory
Video Memory (BG, OBJ, OAM, Palette) can be written to in 16bit and 32bit units only. Attempts to write 8bit data (by STRB opcode) won't work:
Writes to OBJ (6010000h-6017FFFh) (or 6014000h-6017FFFh in Bitmap mode) and to OAM (7000000h-70003FFh) are ignored, the memory content remains unchanged.
Writes to BG (6000000h-600FFFFh) (or 6000000h-6013FFFh in Bitmap mode) and to Palette (5000000h-50003FFh) are writing the new 8bit value to BOTH upper and lower 8bits of the addressed halfword, ie. "[addr AND NOT 1]=data*101h".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants