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
tms9918: widen vcounter to 9 bits #113
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
By using an 8 bit counter, the last 6 lines of every frame were being skipped and the VDP was firing vblank interrupts ~2.3% faster than intended in the ColecoVision, SG-1000, and MSX. This also fixes the corrupted turtle graphics in Frogger for ColecoVision, though this is mostly by chance. The game is buggy and susceptible to graphics corruption if a vblank is raised between these instructions: 1d09 out ($bf),a ; write low VRAM address byte 1d0b ld a,h 1d0c out ($bf),a ; write high VRAM address byte It could easily be regressed by any future change that impacts timing.
This fixes #84, though for the reasons given in the commit message, it won't be surprising if it comes back in the future. |
invertego
added a commit
to invertego/ares
that referenced
this pull request
May 4, 2022
7f08de6ff Improve jump code generator on MIPS 469c61db9 Improve mips code generator a4e8e34ef Support unsaved registers on s390x f404f3608 Support unsaved registers 88d4778b9 Add license file 160b6f99d windows: fix building in arm64 with clang (ares-emulator#126) 022482eeb wxexec: officially drop support for EOL NetBSD < 8 versions (ares-emulator#124) beda74f07 Support reworked floating point compare on s390x 050215b22 Remove unnecessary checks 6b950049d Improve floating point compare. 6ace72c90 windows: allow building with MinGW64 gcc/clang (ares-emulator#125) 186b07064 mips: avoid sign conversion warnings with clang (ares-emulator#122) e0b17f5a6 macos: fix recent regression breaking build in macos/arm64e (ares-emulator#121) 68d9b4bac misc: mostly to avoid warnings (ares-emulator#120) 76330309a Update s390x. 6807c7a8f Remove SLJIT_NEG. ca530a4a7 Readd carry flag support. 5f60134b5 s390x: be explicit about cache coherence needs (ares-emulator#119) 75a555604 power: avoid bogus clear_cache builtin in gcc >= 10 (ares-emulator#118) 1448ef97c sparc: avoid NOP implementation for clear_cache with gcc (ares-emulator#117) ad69ad87b sparc: build fixes (ares-emulator#116) 47646b943 Support incoming arguments in scratch registers for s390x. 4fbdd6953 Support incoming arguments in scratch registers. 86ebfbd50 Rework x86-32 function prologue/epilogue. 2f8cf7a08 Increase the number of floating point registers on ppc, mips, and sparc. 2737606ee Increase the number floating point registers on s390x. 03469c8e1 Rename tail call to call return and minor ARM improvements. 7cb8a5c24 Increase the number floating point registers on x86 and ARM. b35ab5e7e Implement fpu support on s390x. dcc8fc149 misc: fix -Wextra related errors (ares-emulator#114) 92fcb0fe5 Fix fallthrough errors. d345a64b3 misc: build/documentation fixes from recent changes (ares-emulator#113) ff6ec4f74 Implement tail call on MIPS. eed28632f Implement tail call on ARM. d7793570f Reduce signed comparison warnings. 30b2dcd83 Reduce value conversion warnings on s390x. c783c1119 Reduce value conversion warnings on MIPS, PPC, SPARC. 335ee51f5 Reduce value conversion warnings on ARM. 8d0f668fa Improve value conversion warnings. 373163144 Implementing tail calls for x86. 9c8b6961b Improve argument sanity checks. 24c547b7e Swap f32 and f64 argument types. 7f0afb25e Rework function argument list descriptor macros. 585ac42bf Implement four argument support for emit enter. b5e0b1234 Improve mov32 operation. 433294658 Fix incorrect function call (ares-emulator#112) cf594d74d Change SLJIT_I32_OP and SLJIT_F32_OP to SLJIT_32. ae5fff841 Improve arm code generator. 43538b877 Replace SLJIT_UNUSED with appropriate function calls. git-subtree-dir: thirdparty/sljit git-subtree-split: 7f08de6ff5a86a4eaa53e33a16136f790e16c709
LukeUsher
added a commit
that referenced
this pull request
May 13, 2022
761d48d2b Improve constant generation 1f32a9f23 Implement fpu operations for RISC-V ad99f17a9 Improve x86 float compare fb55788d0 Initial implementation of RISC-V port 7f08de6ff Improve jump code generator on MIPS 469c61db9 Improve mips code generator a4e8e34ef Support unsaved registers on s390x f404f3608 Support unsaved registers 88d4778b9 Add license file 160b6f99d windows: fix building in arm64 with clang (#126) 022482eeb wxexec: officially drop support for EOL NetBSD < 8 versions (#124) beda74f07 Support reworked floating point compare on s390x 050215b22 Remove unnecessary checks 6b950049d Improve floating point compare. 6ace72c90 windows: allow building with MinGW64 gcc/clang (#125) 186b07064 mips: avoid sign conversion warnings with clang (#122) e0b17f5a6 macos: fix recent regression breaking build in macos/arm64e (#121) 68d9b4bac misc: mostly to avoid warnings (#120) 76330309a Update s390x. 6807c7a8f Remove SLJIT_NEG. ca530a4a7 Readd carry flag support. 5f60134b5 s390x: be explicit about cache coherence needs (#119) 75a555604 power: avoid bogus clear_cache builtin in gcc >= 10 (#118) 1448ef97c sparc: avoid NOP implementation for clear_cache with gcc (#117) ad69ad87b sparc: build fixes (#116) 47646b943 Support incoming arguments in scratch registers for s390x. 4fbdd6953 Support incoming arguments in scratch registers. 86ebfbd50 Rework x86-32 function prologue/epilogue. 2f8cf7a08 Increase the number of floating point registers on ppc, mips, and sparc. 2737606ee Increase the number floating point registers on s390x. 03469c8e1 Rename tail call to call return and minor ARM improvements. 7cb8a5c24 Increase the number floating point registers on x86 and ARM. b35ab5e7e Implement fpu support on s390x. dcc8fc149 misc: fix -Wextra related errors (#114) 92fcb0fe5 Fix fallthrough errors. d345a64b3 misc: build/documentation fixes from recent changes (#113) ff6ec4f74 Implement tail call on MIPS. eed28632f Implement tail call on ARM. d7793570f Reduce signed comparison warnings. 30b2dcd83 Reduce value conversion warnings on s390x. c783c1119 Reduce value conversion warnings on MIPS, PPC, SPARC. 335ee51f5 Reduce value conversion warnings on ARM. 8d0f668fa Improve value conversion warnings. 373163144 Implementing tail calls for x86. 9c8b6961b Improve argument sanity checks. 24c547b7e Swap f32 and f64 argument types. 7f0afb25e Rework function argument list descriptor macros. 585ac42bf Implement four argument support for emit enter. b5e0b1234 Improve mov32 operation. 433294658 Fix incorrect function call (#112) cf594d74d Change SLJIT_I32_OP and SLJIT_F32_OP to SLJIT_32. ae5fff841 Improve arm code generator. 43538b877 Replace SLJIT_UNUSED with appropriate function calls. git-subtree-dir: thirdparty/sljit git-subtree-split: 761d48d2b89a048badbd9c5cf45da75336891cfe
LukeUsher
added a commit
that referenced
this pull request
Feb 17, 2024
2a1119c686 Merge pull request #113 from scribam/ci-switch-vita 51bd8e9696 Add GitHub Actions for Switch and Vita bd19fbd6fc Merge pull request #110 from scribam/zlib-1.3 577f3276c9 Merge pull request #111 from scribam/c90 5f04e2fdf9 Merge pull request #109 from scribam/actions-checkout 16ebde42b8 Merge pull request #112 from scribam/dr_libs 647f42b274 dr_flac: Version 0.12.42 5fd5165194 Compilation fix when using C90 with GCC ea2da72d3d Bump zlib to 1.3.1 4e0aa45a78 Update actions/checkout to v4 git-subtree-dir: thirdparty/libchdr git-subtree-split: 2a1119c686eb07033d02f8c6d12406f8fd373775
LukeUsher
added a commit
that referenced
this pull request
Feb 25, 2024
2a1119c68 Merge pull request #113 from scribam/ci-switch-vita 51bd8e969 Add GitHub Actions for Switch and Vita bd19fbd6f Merge pull request #110 from scribam/zlib-1.3 577f3276c Merge pull request #111 from scribam/c90 5f04e2fdf Merge pull request #109 from scribam/actions-checkout 16ebde42b Merge pull request #112 from scribam/dr_libs 647f42b27 dr_flac: Version 0.12.42 5fd516519 Compilation fix when using C90 with GCC ea2da72d3 Bump zlib to 1.3.1 4e0aa45a7 Update actions/checkout to v4 git-subtree-dir: thirdparty/libchdr git-subtree-split: 2a1119c686eb07033d02f8c6d12406f8fd373775
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By using an 8 bit counter, the last 6 lines of every frame were being
skipped and the VDP was firing vblank interrupts ~2.3% faster than
intended in the ColecoVision, SG-1000, and MSX.
This also fixes the corrupted turtle graphics in Frogger for
ColecoVision, though this is mostly by chance. The game is buggy and
susceptible to graphics corruption if a vblank is raised between these
instructions:
1d09 out ($bf),a ; write low VRAM address byte
1d0b ld a,h
1d0c out ($bf),a ; write high VRAM address byte
It could easily be regressed by any future change that impacts timing.