-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Fix Super19 version of Heath H19. #2094
Conversation
You can load the ROM piecewise to get the effect you want - load the unused parts off the end of useful space:
Alternatively you can use
That maps 0x100 bytes from offset 0x2000 in the ROM region starting at 0x4800 in the address space. Can you try one of these approaches to get the ROM loading you want? |
I was able to closer to the ROM loading properly, but with the AM_MIRROR set for the h19 machine, it was still only seeing the first 4k. I figured I needed to create a new ssh19 machine, so I created another memory map without the AM_MIRROR for the low ROM and a ssh19 machine using MACHINE_CONFIG_DERIVED. But the resulting program just seg faulted (attempting to run any of the h19 systems crashed): Thread 1 "mame64" received signal SIGSEGV, Segmentation fault. |
@cuavas here is the code I have, both approaches crash, I assuming it is related to the alternate ADDRESS_MAP or MACHINE_CONFIG_DERIVED. As I stated above, if I use approach 1, and the existing AM, it loads the ROMS but it's mirrors the first 4k. When I add in the new AM and machine config, it segfaults, for all versions of the h19. |
With no response in 17 days, I removed all of the partials changes for the SuperSet rom, which SHOULD address the concerns of @cuavas. What remains is the fixes needed to get super19 working. Extremely disappointing that PRs are handled this slowly. |
You said the code crashed. That's not acceptable. You can't expect us to have the time to debug/fix your submissions. We've got lots of other things happening in MAME development, and we all have other responsibilities. You're not going to win any sympathy with that attitude. |
Had you reviewed at that code, you would have seen both of your suggested approaches were IFDEFed out, so the PR was not crashing. I left them in initially to get feedback on what may be wrong. |
And yes we all all very busy. My frustration is that I felt the initial PR met the standard to be merged, instead of requiring changes to partially fix the new 'NOT_WORKING' system I added. After fixing the other 2 H19 variants in earlier PRs, this PR fixed the third H19 variant, all which had been NOT_WORKING for years. It also added a skeleton for a new 'NOT_WORKING' variant which will also requires changes to connect up the 8250 UART to some bank-switching logic for the character graphics rom, as I had mentioned in the TODO list comments. I did try both approaches you suggested, neither worked (most likely to my lack of understanding all the MACROs, which are used in mame that I haven't had time to research very much). I reported that, and instead of ANY feedback (including just a 'ok revert it to the original PR and address the rom loading later'), there was total silence for 2 weeks. Instead of keeping this PR in limbo for weeks, merging the original and suggesting how to fix the issue in a followup PR would have been a better approach (IMHO), since it is not unusual for NOT_WORKING systems to be added to mame. |
Adds the AM_MIRROR settings which the Super19 ROM relied on. The CRTC ports and the videoram memory were the only ones I saw, which was REQUIRED to get it working, but figured I'd update all the memory and ports to properly reflect the real board in case the ROM used it in other code paths I hadn't tested.
Also added preliminary definitions for the SuperSet ROM, not sure if the current AM_MIRROR options allows a way to properly define how it is configured. My initial attempts to define it, caused run-time crashes. The ROM chip is a 32K chip, of which 16K is used. But the valid data is in the 2nd and 4th 8K blocks of the chip, not the 1st and 3rd. So it would either error with 'mirror touching a set bit' or have the memory reflect the invalid parts of the ROM chip.