abbruzze / kernal64 Goto Github PK
View Code? Open in Web Editor NEWA Scala Commodore 64, 128, VIC20, CBM2 and SuperCPU emulator
License: MIT License
A Scala Commodore 64, 128, VIC20, CBM2 and SuperCPU emulator
License: MIT License
aria2c https://github.com/abbruzze/kernal64/tree/master/Kernal64/dist/kernal64_install.zip
Archive: kernal64_install.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of kernal64_install.zip or
Hi,
sorry for the n00b question, but I've never programmed in Scala before and in general don't know the Java ecosystem very well.
So what's the quickest, most straightforward way to build the code on Linux (want to try out the Beamracer branch)?
Cheers,
Ralph
If I try to use for example --run-file command line option with a name that contains spaces, it will try to load with only last part of the name, i.e.
--run-file "afterburner +2"
will inside emulator try to load
load"+2",8,1
Solution is simple, just change last parameter in bash scripts in the last line from
$*
to
"$@"
(with quotes!)
Trying to run k64.sh (release version 1.4.6) results in:
> ./k64.sh
-bash: ./k64.sh: /bin/bash^M: bad interpreter: No such file or directory
The shell scripts should use LF instead.
Same procedure as every year - i am running the VICE testbench again :) I am also looking at gathering results for kernal64 1.8.4 b1 in the process.
Since i have improved the output tables a bit (essentially omitting a lot of uninteresting noise), i noticed that sometimes i am getting timeouts reported for tests that would run correctly when i do it manually (which is really odd).
For example when i call the testbench script like this:
EMUDIR="~/kernal64/kernal64-1.8.4_b1/" ./testbench.sh kernal64c64 selftest --verbose
i see for example this: (*)
(cartridge:c64-pass.crt) ./selftest/ - [screenshot][PAL: ./selftest//references/c64-pass.crt.png]RUN: ~/kernal64/kernal64-1.8.4_b1///k64.sh --ignore-config-file --testcart --headless --warp --vic-palette pepto --screen-dim 1 --cpujam-continue true --sid-cycle-exact --cart ./selftest//c64-pass.crt --limitcycles 10000000 --screenshot ./selftest//.testbench/c64-pass.crt-kernal64c64.png
Using 'DE' keyboard layout
ExpansionPort{crt=Cartridge[C64 CARTRIDGE ] VICE CART type=0 EXROM=false GAME=true CHIPS=[CHIP bank=0 loadAddress=8000 romSize=4096] game=true exrom=false
romlBanks=<0 -> ROM(VICE CART-roml-0)[startAddress=8000 length=4096]>
romhBanks=<>}
Fatal error occurred on cycle 320: PC=801E AC=08 XR=F3 YR=00 SP=FF NV#BDIZC=N-#--I-C
801E CA DEX
java.io.FileNotFoundException:
at ucesoft.cbm.CBMComputer.loadSettings(CBMComputer.scala:685)
at ucesoft.cbm.c64.C64.turnOn(C64.scala:495)
at ucesoft.cbm.CBMComputer$.turnOn(CBMComputer.scala:29)
at ucesoft.cbm.c64.C64$.delayedEndpoint$ucesoft$cbm$c64$C64$1(C64.scala:24)
at ucesoft.cbm.c64.C64$delayedInit$body.apply(C64.scala:23)
at scala.Function0.apply$mcV$sp(Function0.scala:42)
at scala.Function0.apply$mcV$sp$(Function0.scala:42)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
at scala.App.$anonfun$main$1(App.scala:98)
at scala.App.$anonfun$main$1$adapted(App.scala:98)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:575)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:573)
at scala.collection.AbstractIterable.foreach(Iterable.scala:933)
at scala.App.main(App.scala:98)
at scala.App.main$(App.scala:96)
at ucesoft.cbm.c64.C64$.main(C64.scala:23)
at ucesoft.cbm.c64.C64.main(C64.scala)
exited with: 1
run_screenshot exited with: 1
timeout
So somehow java crashed (?) and the k64.sh script returned 1 as a result. I have no idea what is happening there, or how to debug this further.
Any idea? :)
(*) actually to see all that output, you'll have to remove some > /dev/null redirections from the kernal64c64-hooks.sh file
Repro steps:
Expected result: mouse moves at humanly speed
Observed result: cursor moves extremely quickly
Suggestion: having eg a pointer speed slider would allow me to configure this proportionally to current window side
Thanks!
not an issue, just sayin'
:)
When attaching disk image with --drive8-file diskimage.d64
an exception is thrown (even thought the image seems to get attached correctly):
java.lang.NullPointerException
at ucesoft.cbm.CBMComputer.attachDiskFile(CBMComputer.scala:439)
at ucesoft.cbm.CBMComputer.attachDiskFile$(CBMComputer.scala:420)
at ucesoft.cbm.c64.C64.attachDiskFile(C64.scala:23)
at ucesoft.cbm.CBMComputer.$anonfun$setDrivesSettings$3(CBMComputer.scala:2100)
at ucesoft.cbm.CBMComputer.$anonfun$setDrivesSettings$3$adapted(CBMComputer.scala:2099)
at ucesoft.cbm.misc.Preferences$Preference$$anon$1.preferenceHasChanged(Preferences.scala:103)
at ucesoft.cbm.misc.Preferences$Preference.$anonfun$notifyListeners$1(Preferences.scala:108)
at ucesoft.cbm.misc.Preferences$Preference.$anonfun$notifyListeners$1$adapted(Preferences.scala:108)
at scala.collection.immutable.List.foreach(List.scala:312)
at ucesoft.cbm.misc.Preferences$Preference.notifyListeners(Preferences.scala:108)
at ucesoft.cbm.misc.Preferences$Preference.load(Preferences.scala:128)
at ucesoft.cbm.misc.Preferences$Preference.load(Preferences.scala:117)
at ucesoft.cbm.misc.Preferences.parseAndLoad(Preferences.scala:202)
at ucesoft.cbm.CBMComputer.loadSettings(CBMComputer.scala:397)
at ucesoft.cbm.CBMComputer.loadSettings$(CBMComputer.scala:391)
at ucesoft.cbm.c64.C64.loadSettings(C64.scala:23)
at ucesoft.cbm.c64.C64.turnOn(C64.scala:474)
at ucesoft.cbm.CBMComputer$.turnOn(CBMComputer.scala:41)
at ucesoft.cbm.c64.C64$.delayedEndpoint$ucesoft$cbm$c64$C64$1(C64.scala:20)
at ucesoft.cbm.c64.C64$delayedInit$body.apply(C64.scala:19)
at scala.Function0.apply$mcV$sp(Function0.scala:39)
at scala.Function0.apply$mcV$sp$(Function0.scala:39)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
at scala.App.$anonfun$main$1(App.scala:75)
at scala.App.$anonfun$main$1$adapted(App.scala:75)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:576)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:574)
at scala.collection.AbstractIterable.foreach(Iterable.scala:904)
at scala.App.main(App.scala:75)
at scala.App.main$(App.scala:73)
at ucesoft.cbm.c64.C64$.main(C64.scala:19)
at ucesoft.cbm.c64.C64.main(C64.scala)
[Disk attaching error] java.lang.NullPointerException
Hi again,
I'm now using kernal64 as my main testing and debugging tool and it would be great if how much of the borders (top, bottom and side) can be shown (default or full) so that I can check how much time I'm consuming "in the borders" and where my sprites appear.
Thanks!
Hi,
there seems to be a problem in the WiC64 emulation. When I call an URL like:
http://62.227.184.12:8192/WebCompiler/Download?size=2048&part=1&file=7f683251-7f9b-4453-92d8-02611d045f24%2F3202642-44-test.bin
it seems to be doing an additional encoding of the %, which results in this URL to be actually called:
http://62.227.184.12:8192/WebCompiler/Download?size=2048&part=1&file=7f683251-7f9b-4453-92d8-02611d045f24%252F3202642-44-test.bin
Looks like as if it has encoded the % to %25, which it shouldn't do. On the server, the decoded Parameter is then
7f683251-7f9b-4453-92d8-02611d045f24%2F3202642-44-test.bin
when it should actually be
7f683251-7f9b-4453-92d8-02611d045f24/3202642-44-test.bin
This works fine on the original hardware.
Hallo, the link to GEOS in the wiki has changed to https://www.lyonlabs.org/commodore/onrequest/geos/index.html
Hi,
Great JOB!
I want to develop software for Wic64 and I want integrate kernal64 to run/debug software in vscode - how doit ?
Regards
Pawel
after unpacking kernal64_install.zip
from the 1.7.2b1 release, running ./k64.sh
on ubuntu fails with an error message /bin/bash^M: bad interpreter: No such file or directory
. the reason for this seems to be that the script uses windows line endings (CRLF) instead of unix line endings (LF). it seems all the .sh
files have this problem.
additionally, it would be nice if the scripts could have the executable bit set so i don't have to set it manually after unpacking.
Feature request: RR-net seems the current de-facto standard for networking (and has widest software support). Can we have this implemented in kernal64?
Thanks for the hard work!
Hy!
I stumbled about your repo and noticed you already hacked up support for the VICE testbench... very nice :) I have now merged your files, and added some more things. I have also made a full testrun, see
https://vice-emu.pokefinder.org/index.php/Testbench
and
https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/testbench/results/
To make the results even better, i am missing a few details, perhaps you can comment on these and/or add the missing features to the emulator, i will update the testbench accordingly.
as a sidenote, i have seen on the wiki page that you hint on setting the drive speed (clock) from 0,9 to 1Mhz - this should really be the default. The drive always runs at 1Mhz, the C64 at 0,981 - a lot of fastloaders will fail if this is not the case :)
I am finding in the latest beta versions that all emulators either don't load settings from the config file on load or doesn't save all changes to settings (especially zoom settings). There is something not working properly here.....
It's possible to trigger this exception with too large value of Bitmap Sequencer padding. If you take https://github.com/madhackerslab/beamracer-examples/blob/master/asm/demo_seq.s and change the line with padding hi byte https://github.com/madhackerslab/beamracer-examples/blob/ee338e42238e12a677cfa90c1e9d5f6abd36e1ad/asm/demo_seq.s#L40 from 0 into a large value, like
MOV VREG_PBS_PADDINGH, $30
the emulator will crash with out of bounds exception.
I think this is caused by adding the padding here:
Hi,
In case you think this is a good idea, that would be nice to have a keyboard shortcut to
(mostly like k64 my.prg
is doing when started from scratch)
Just because I spend my time debugging and I do alt-r
, alt-g
, mouse click
(as the PRG is not selected by default), Enter
, RUN
Thanks !
Hi!
I wondered why the GIF recorder was limited to 100ms. I updated your code to support higher framerate and it looks to be working well (I tried 20ms).
Is it unstable or unwanted by design ?
Thanks!
I noticed the option freespin cable in the menu.
I enabled it the loaded freespin...
What else should I need to do to make it work?
No bug, but I would like to be able to assign the arrow keys individually and not exclusively in combination with Shift+down/Shift+right.
A great emulator that has helped me the of WIC64 support countless times! <3
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.