lgblgblgb / xemu

Emulations (running on Linux/Unix/Windows/macOS, utilizing SDL2) of some - mainly - 8 bit machines, including the Commodore LCD, Commodore 65, and the MEGA65 as well.
https://github.com/lgblgblgb/xemu/wiki
GNU General Public License v2.0
201 stars 31 forks source link

MEGA65: How to load a d81 #243

Closed danboid closed 3 years ago

danboid commented 3 years ago

OK so I've installed xemu and downloaded the rom and some .d81 files. I have mounted the d81 via the menu and... now what?

I think its best to not expect every user to know how to load a mega 65 program and so it would be good to cover this process in the README. I expect its the same process / commands as on the C64? xemu will be most peoples introduction to the MEGA 65 so it'd be nice to make it usable by non Commodore veterans and those who have forgot their way around an 8 bit Commodore-alike machine like me.

lgblgblgb commented 3 years ago

Xemu/MEGA65 needs to emulate the MEGA65, as close as possible. On a real MEGA65 too, it's the same "now what" :) So I cannot see a problem here, you must load the program you want, same as with a real MEGA65 of course. I don't think it's the task of the emulator to describe how the emulated machine works, documentation of the emulator needs to deal about emulator specific issues. It's the task of the documentation of the emulated machine already to have description on using the machine (let it be "real" or "emulated" machine). Btw, that's a reason there is the MEGA65-book download option in the popup menu (right click into the emulator window, probably you want to use the next branch for that).

However, just to be clear. Ideally, indeed, you would be right, the nature of an emulator can provide extra help over a real machine to make some things easier with alternative / beginner friendly solutions. I don't say your description above is "unrealistic" in general, or anything bad. But the situation currently now, that there are much more serious problems in emulation, and basically I am alone in most tasks to solve it (indeed, Hernan helped and helps in some areas since a while in Xemu development, about VIC-IV emulation enhancements and Mac GUI for example). And being Xemu as a hobby project for me, of course my time is very limited, even not enough to reach a reasonable compatibility of the current MEGA65 state. What I want to say with this, that about every "luxury" options are really "luxury" now, since even basic things do not work sometimes which needs my time more. But compare a mature and comfortable C64 emulator, how longs it is developed, and by how many people, on emulating a machine which was released decades ago, and even those emulators still changing, new bugs, new features etc. Now compare with Xemu and MEGA65, I do it (mostly! I would not give away specially Hernan's great help here though!) alone, since 1-2 years only (more seriously at least, other than some long staging initial try), on a machine which is not even released yet and changes things all the time.

Sorry for the long answer, but I wanted to be extra clear with my explanation that I value your opinion and indeed, there is some truth in it, just it's not so much realistic wish at this point, when the more basic point: "make it really work" is the current goal with very limited human resources behind the work, which is of course understandably, is a much more important factor for an emulator.

In general, I think, MEGA65 is more the children of Commodore "veterans" but you're absolutely right that "newcomers" are important to feel comfortable even without prior in-depth knowledge.

danboid commented 3 years ago

Wow! I've filed more than my fair share of gh bug reports and fr's and that is by far the most verbose and in-depth response I've ever received!

Justification accepted, thanks!

lgblgblgb commented 3 years ago

You're welcome, in fact thanks for your time to fill an issue, it always help to find out what users would like, which is often different than the author think :) The reason of my very detailed answer is the fact, that in the past I had some bad experience people misunderstand a shorter reaction of mine finding it "arrogant" and "annoying". So I try my best to give a detailed logical answer since then, to avoid any possibility (as much as possible at least ...) to misunderstand my intent, that "rejecting" and issue it's not that I don't value the opinion or anything like that.

danboid commented 3 years ago

Great project. I would like to get a mega65 but they are a bit of a luxury item at $300+.

Are you aware of the Uzebox? Have you got or built one or is it of no real interest you? Successful open hardware platforms have been few and far between except for the PC. The Uzebox seems like something you'd be at least aware of.

danboid commented 3 years ago

It'd be cool to see a Uzebox module or whatever they're called for the M65 board, similar to the Gameboy and Speccy ones but the Amiga one would obvs take precedence after m65 :D

lgblgblgb commented 3 years ago

As far as I know, uzebox is a AVR 8 bit MCU used in a kind of game console. I don't particularly like that approach because it's an MCU with classic harvard-architecture, that is, code is in flash, so it's not the classic von-naumann architecture to allow load/modify code as general purpose computers can do. Btw, you can buy a nexys4 FPGA board (maybe it has different name now) and use it as MEGA65 with your custom case, etc. The design of MEGA65 is originally based on the idea that MEGA65 can be built with "off the shelf" components, that is a purchaseable FPGA board in this case. A "real" MEGA65 is expensive (especially currently, or it was, with the DevKit ...) that it's a custom board, custom case, and low production volume. Hopefully it will change when MEGA65 is "officially" released (not only as a limited quantity of devkit). But this is far beyond the scope of the emulator to talk about this here, especially because I'm not the biggest expert in this topic already :) But you can join to the discord server of MEGA65 and ask questions where you may find somebody who knows more about a given topic. I'm mainly involved currently on writing emulator of MEGA65, but surely other people found other own interest within the project. We're all just volunteers, so who knows, maybe you can find something exciting too.

danboid commented 3 years ago

I downloaded the mega65 user guide pdf but I'm still non the wiser. It says I can push SHIFT + RUNSTOP to load the first program on a disk but how would I do that key combo under xemu on a UK PC laptop keyboard?

If this process is covered in the mega 65 user guide, on which page or in which chapter is it covered?

Thanks

lgblgblgb commented 3 years ago

Well, first, you can use command DIR to have a directory and the usual LOAD "filename" command to load something (note, that the ,8 is not strictly needed as even already C65 did not support tape, so disk is the default). Then you can use RUN. Thus, compared to C64, it's similar, just you have the value to use DIR to have directory instead of the cludgy way on C64 to LOAD "$",8 then LIST. However the complexity with the system inherited from back to C64 and C65 that you can't know what kind of program it is. So if a program is designed (unfortunately you can't tell that in advance ...) to be executed in C64 mode, first you need to switch into C64 mode with command GO64 (somewhat like on Commodore 128, btw). In C64 mode though, DIR does not work since it uses the original C64 KERNAL and behaves like more a C64 than a C65. Yes, that's confusing, I admit, but this is how a C65 worked, and MEGA65 meant to be a C65 compatible machine. So actually this is a reason why not so easy to provide an emulator shortcut, since it depends deeply that you know many things on C64 and C65, and not so easy to even judge what the program is meant to be (C64 or C65 mode program?). But that is also somehow the "beauty" of the old feeling some can tell who used C64 back to then to its golden area, after all for many people (including me) the major attraction factor was the "nostalgia" towards our younger ages with C64 or at least other Commodore machines as the "main computer" (no just a "hobby retro machine"). I think it's a bit problematic for people not so familiar with the "roots", but it's very hard to create a basically "retro" system with leaving the retro out :) [meaning prior knowledge, or at least willing to learn that knowledge if not present already].

But back to the very specific question of yours. Indeed, in this very case, you can say it's more an Xemu like problem. That is where is "RUN/STOP" key ... :) It's "END". So you must press SHIFT+END, since PC key END is mapped as RUN/STOP of the emulated machine. This is easily boils down to a mistake of mine, that I really should document the keyboard mapping ... If that does not work (ie, it "LOADING" something but nothing happens, or strange error etc) then it's possible it's a C64-mode program. What I've talked about before. So then you need GO64 first, and the same procedure. As I've told, it's not so possible to tell in advance which would work, depends on the actual program, if you know what it is, of course it's fine ... But if not, you must guess, not so much possibility ... This is just nature how these things worked even back to the golden era.

Sorry if I write something "but I know it!!" kind of thing, I have no idea about your generic knowledge on Commodore machines.

lgblgblgb commented 3 years ago

OK, meanwhile I've edited my comment above, that's also a bad habit of mine since then unclear for everybody else, if it contains new info or not :-O

lgblgblgb commented 3 years ago

I left out though the logical reasoning on SHIFT - RUNSTOP. It basically does a LOAD command and then a RUN. So that's why I talked about LOAD and RUN, that you can do it yourself too. And the reason: with actual LOAD command you can specify the file to LOAD, while pressing SHIFT-RUNSTOP will only load+run the first program on the disk, whatever it is, but not any other ... So it's meant (by Commodore back to then) a quick&dirty way to "load something" (originally meant for casette as data storage btw, it works that way on a C64 not from disk!).

lgblgblgb commented 3 years ago

And well, don't get me wrong, but I really feel it's not so much a space here to just have chatting basically :) I really suggest to join MEGA65 discord server, where you can find many people including me, and as far as I can tell, everybody want to help, if someone is interested in (yes, we had some bad experience from time to time, to meet "strange" people who treat help as offens and feel pissed off, that one reason HERE too what I've already mentioned that I want to explain everything in a looooong way just to try to avoid such a bad experience again as much as possible). But really I don't write this because I don't want to talk/help you, or anything, just this is really not the right place for it, I think.