vc64web / virtualc64web

vc64web - Commodore C64 Emulator for iPad iPhone Android and the Web with CSDb access for thousands of demos at your fingertip.
https://vc64web.github.io/doc/about.html
GNU General Public License v3.0
42 stars 4 forks source link

Bruce Lee crashes (any version) after several levels #194

Closed gooddosh closed 11 months ago

gooddosh commented 11 months ago

Bruce Lee, one of my favorite games, crashes (any version) after completing several levels. I've tried various BIOS ROMs to no avail. Seems like a memory malfunction at a certain point. It's not same exact point in the game every time. It varies but always happens after several levels are completed.

mithrendal commented 11 months ago

What exactly happens when it crashes ? Any screenshots ? On which device are you playing it ? Did you have a look into the log console ?

gooddosh commented 11 months ago

I will follow up with a screenshot (scrambled character blocks across the screen). In this case, MacOS Chrome browser.

gooddosh commented 11 months ago

screen 2023-08-04 at 4  5 28 55 PM

gooddosh commented 11 months ago

I'll check the log console next chance I get. Need to pause research until tomorrow. Regardless, I am so excited to have a C64 on an iPhone (future plan and will test BL there to see if I encounter the same issue).

mithrendal commented 11 months ago

Try to make a snapshot shortly before it crashes. When replaying from that snapshot does it crash always at the same time / location ? If so … can you upload the snapshot here so I can do some further inspections on it?

EDIT: https://www.lemon64.com/forum/viewtopic.php?t=16801

Above forum link describes the crashes of BL after 10 Minutes … maybe they are speaking about the same crashes?

mithrendal commented 11 months ago

as they say in that forum that the tape version of bruce lee should work I tried to load that tape version...

thereby I discovered that tape loading in vc64web was broken... I just fixed that and could now load the tape version of bruce lee from www.c64games.de

mithrendal commented 11 months ago

@gooddosh Ok found the root cause in the game code

here at video position 19:01 "PAL crashes" to position 25:00

https://www.youtube.com/watch?v=Kiv9O-vVcTs

the crash in the video on a real C64 PAL hardware looks very much like your screenshot and it is apparently a bug in game which is explained in depth in that video.

Solution You should look out for the version published by the REMEMBER group which fixed that game bug.

gooddosh commented 11 months ago

@mithrendal, you absolutely ROCK!

mithrendal commented 11 months ago

you absolutely ROCK!

Thanks ! 🫡

Regardless, I am so excited to have a C64 on an iPhone

install it to the homescreen as a web app on iPhone or iPad for best experience (it will eliminate safaris touch gestures and address bar …)

🕹️Did you know you can plug physical game controllers into it as well.

gooddosh commented 11 months ago

Hmmm, I can connect my original Competition Pro joysticks via USB. :) Was thinking of getting a couple small bluetooth controllers for mobility and try to send my iPhone to an HDTV, though I've never tried before. It would be really fun to have a portable solution to introduce people to the platform. You've thought of everything in vc64web, right down to warp during load only. I'm a VICE user on Mac, normally. I'd like to figure out how to play across the internet with people that still care to play these games.

dirkwhoffmann commented 11 months ago

You could buy an adapter like this one:

Bildschirmfoto 2023-08-05 um 14 28 43

Alternatively, you could buy the USB remake of the Competition II (this is what I did).

gooddosh commented 11 months ago

Yup, got 'em already. Never thought of plugging them into my iPhone. :D

gooddosh commented 11 months ago

I'm happy to say that I got all the way through Bruce Lee via the REMEMBER/MEM version... with infinite lives in my old age. Can't believe I ever finished that thing back in the day without a cheat, more than once.

mithrendal commented 11 months ago

since you are on MacOS and also already using chrome that retro fun adapter should work well... also FireFox works with probably any joystick you plug into your mac

for apples safari on iOS/iPadOS/MacOS only certified / white listed controllers will be supported in vc64web ... see https://support.apple.com/en-us/HT210414

did you know there is also a dedicated mac version of virtualC64 written by @dirkwhoffmann ? virtual C64 for macOS from which I took the cpp emulation core and then wrapped a nice web ui around it to make it work on iPhones and any modern web browser.

gooddosh commented 11 months ago

I will certainly give the Mac vc64a spin. You guys are great. It's really nice to meet you.

Side question: Is there a list of key mapping anywhere? I'm looking for run/stop, etc. without having to pull up the virtual keyboard.

mithrendal commented 11 months ago

Side question: Is there a list of key mapping anywhere? I'm looking for run/stop, etc. without having to pull up the virtual keyboard.

thats easy ...

  1. create a global action button with the + icon
  2. name it as you like e.g. runstop, or give it an emoji you like
  3. choose add special key runstop
  4. hit save

now you have created an action button. you can drag it around to a position as you like to. click and hold a second goes into edit mode again where you can edit or delete it.

When you just want to have a keyboard mapping, you can give that action button a short cut key and set the opacity to nearly invisible and drag it to a corner where it is not in your way.

action buttons are either game context aware or globally you can set that too.

gooddosh commented 11 months ago

Can these be exported from Mac to iPhone?

gooddosh commented 11 months ago

Also, now that I've positioned the buttons, I can't figure out how to edit them or remove any (I tried clicking and holding; I'd placed them in the top bar blank area above the screen next to other controls). Feel free to direct me to WIKI location. I hate to bother you with these noob questions.

gooddosh commented 11 months ago

Yeah, definitely can't delete/move these because of where I put them.

screen 2023-08-05 at 5  10 44 37 AM

mithrendal commented 11 months ago

I hate to bother you with these noob questions.

never mind 😄 I will have a look whether I have documented the action buttons ...

in the mean time ...

long press these buttons and they will go into edit ... of course in the settings lock action buttons has to be off.

image
gooddosh commented 11 months ago

Lock is off; however, I definitely cannot edit/delete the buttons, I assume because of where I placed them. If I create a new one and leave it in the screen area, I CAN indeed edit/delete it.

mithrendal commented 11 months ago

ok medical assistance is coming 🚑... click on the hamburger menu button to make the nav bar invisible ... your buttons seem to be right under the nav bar ... so when you click them with navbar visible they don't receive the click I guess

gooddosh commented 11 months ago

LOL, got it. Thanks for the workaround!

gooddosh commented 11 months ago

Of course, any normal biped would put these in the margin, which I have done thanks to the suggestion. :P

gooddosh commented 11 months ago

Any plans for net play? :)

mithrendal commented 11 months ago

net play 😱... its breaking the sandbox 😀...

One might think because vc64web is a web app and therefore sort of ”present and online in the internet” that this would also presuppose that it could communicate easily with other computers in the internet… But this thought is misleading…

That is because browser engines in which v64web lives together with its compiled c++ code inside a wasm memory space are very strict when it comes to connectivity to other computers in the internet. You can think of it as a sandbox in which connections to the outside world are restricted to the ”same server only” from which vc64web code was loaded from.

To connect to any computer from a web app like vc64web would therefore require sending all traffic back to the same server which would have to act as a reverse proxy through which all information would be passed. Since it lives on a github.io web space which only serves static files there is currently no way to implement such a proxy. One had to rent a server which can host a free programmable service for this and do all the session matching and syncing work there... I have no such plans currently🥺sorry ...

gooddosh commented 11 months ago

All good. I wouldn't use the phone for it anyway. Doesn't sound like virtualC64 supports it either. I read that VICE does, but I haven't endeavored to get it working.