Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07939 Core Minor Always Apr 11, 2021, 00:35 28 days ago
Tester ICEknight View Status Public Platform MAME (Official Binary)
Assigned To Resolution Won't fix OS
Status [?] Closed Driver
Version 0.230 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary MESS-specific 07939: zx81: Incorrect default amount of RAM
Description Current ZX-81 emulation acts as if the system had 16K of RAM, but the system's default was 1K.
It seems to be always running as if a RAM expansion cartridge was plugged in, with no possibility of disabling it (no slot options in this core).
Steps To Reproduce Load a RAM test program that I'm attaching with:
LOAD""
RUN

Which is entered like:
J, SHIFT+P, SHIFT+P, ENTER
R, ENTER

Test results will show "16K" on screen.
Additional Information The second RAM test I'm attaching is not working currently, I don't know if it's because of another bug.
Github Commit
Flags
Regression Version
Affected Sets / Systems zx81
Attached Files
zip file icon zx81 ram test.zip (45,393 bytes) Apr 11, 2021, 00:35 Uploaded by ICEknight
zip file icon zx81 ram test 2.zip (41,819 bytes) Apr 11, 2021, 00:36 Uploaded by ICEknight
zip file icon ram test savestate.zip (918 bytes) Apr 11, 2021, 00:52 Uploaded by ICEknight
zip file icon ram test 2 savestate.zip (940 bytes) Apr 11, 2021, 00:53 Uploaded by ICEknight
flac file icon zx81 ram test.flac (2,043,074 bytes) 30 days ago Uploaded by ICEknight
flac file icon zx81 ram test 2.flac (1,899,596 bytes) 30 days ago Uploaded by ICEknight
flac file icon zx81 ram test INVERTED.flac (2,042,722 bytes) 30 days ago Uploaded by ICEknight
flac file icon zx81 ram test 2 INVERTED.flac (1,899,257 bytes) 30 days ago Uploaded by ICEknight
Relationships
There are no relationship linked to this issue.
Notes
10
User avatar
No.18665
ICEknight
Tester
Apr 11, 2021, 00:53
Added savestates in case that the File Manager won't work.
User avatar
No.18666
Tafoid
Administrator
Apr 11, 2021, 02:43
You can set the size of RAM via command-line.
By default, zx81 is set up to use 16k so it is not completely useless. You could argue it should be the default state, but I would assume you'd get a fair bit of the opposite - pleading for more than 1K and I presume that 16k was chosen to be the mainstream common standard configuration people used.

                <device_ref name="ram"/>
                <ramoption name="1K">1024</ramoption>
                <ramoption name="32K">32768</ramoption>
                <ramoption name="48K">49152</ramoption>
                <ramoption name="16K" default="yes">16384</ramoption>

If you use -ram 1k, it should start the machine with 1024 bytes. Other sizes are also available.
You do have other computers which have hardware which is above standard issue so this isn't a unique case.
User avatar
No.18669
Robbbert
Senior Tester
Apr 11, 2021, 06:35
If the default was 1k I'd expect much of the software to fail, and the casual user wouldn't know what to do.

16k seems quite reasonable.
User avatar
No.18670
hap
Developer
Apr 11, 2021, 18:20
I don't really care whether 1K or 16K is the default. But if your RAM test works as expected after you select 1KB RAM, this bug report can be closed as invalid.
User avatar
No.18671
ICEknight
Tester
Apr 11, 2021, 21:57
edited on: Apr 12, 2021, 00:36
The ZX-81 only ever came equipped with 1KB of RAM on-board and the current emulated system has 16KB installed by default, which can only be achieved on a real system through modding.

On the other hand, its clones the TS1000 and the TS1500 came equipped with 2KB and 16KB, respectively.

Maybe the defaults in MAME should be those of the as-is, unmodded systems?
User avatar
No.18729
Tafoid
Administrator
Apr 21, 2021, 14:02
Acknowledging only to continue discussion, if needed.

My opinion is that the machine is pretty much unusable with any most cassette software produced if 1K were set as the default. I'm not discounting there are a few selections built to fit within the 1k, but 16k allows most all other cassettes to load and run correctly as expected. We have numerous other machines with added storage mediums which are not part of the "base" machine. A default configuration, likely, is the driver developers choice in the end.
User avatar
No.18732
Pernod
Developer
Apr 21, 2021, 21:06
As has already been mentioned, the ZX81 defaults to 16K as that was the most common configuration, and also avoids false bug reports from users trying to run 16K software on a 1K machine.

Even if the expansion slot was emulated then I'd still have a 16K RAM pack inserted by default.

This bug report should be closed.
User avatar
No.18737
ICEknight
Tester
Apr 22, 2021, 19:22
edited on: Apr 22, 2021, 19:23
The current default configuration is that of a modded system.

I think this should stay open as a reminder for whoever sees this and can add proper 16K expansion support (and set it as default, which seems to be the actual desired default configuration).
User avatar
No.22328
ICEknight
Tester
30 days ago
Added variations of the tests with their wave polarity inverted since the originals don't load in MAME anymore, which might be related to bug report 8875: https://mametesters.org/view.php?id=8875
User avatar
No.22330
Robbbert
Senior Tester
28 days ago
Numerous problems with your report. Your program doesn't work on a 1K machine, because firstly POKE 18000 is outside the memory range fitted, and your flac file overwrites the stack, causing loss of the loaded program. You'll have to think of something better.

I manually entered the program to start poking at 0x4380 (17280) on the 1K machine, and it returned 1028 bytes (1K after division).

You need to remember that the video area is structured differently between a 1K and a 16K machine, such that programs saved on one may not work on the other.

Lastly, 3 devs have already said that 16K default is fine. Therefore I can't really see a reason to keep this open.