Git Product home page Git Product logo

kernal64's People

Contributors

abbruzze avatar miho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kernal64's Issues

Encoding problem in WiC64 emulation

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.

Strange problem when running from a script

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

How to build?

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

official support in the VICE testsuite

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.

  • a command line option to reset everything to default. this is essential for getting reproducable testruns without interfering with whatever is currently saved to the settings
  • a command line option to enable "cycle exact SID emulation" (this seems to be disabled by default for some reason)
  • i couldn't find a list of the currently supported .crt types (so i can properly filter those that are not)
  • i'd like to know which VICII variant you are aiming to emulate (there are subtle differences between older NMOS and never HMOS variants). (again this is needed to filter the tests that do not apply)

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 :)

Saving Settings

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.....

Beamracer - ArrayIndexOutOfBoundsException

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:


and then using it here:
val gdata = banks(seq_bank)(seq_bitmap_pointer)

without wrapping around 16-bit address boundary. That is done in the very next line, when step is added:
seq_bitmap_pointer = (seq_bitmap_pointer + seq_step) & 0xFFFF

java.lang.NullPointerException when attaching disk images

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

up/down & left/right

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

Q: how integrate it with vscode

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

[Feature] Screen borders

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!

[Feature] Restart Kernal64 with same PRG

Hi,

In case you think this is a good idea, that would be nice to have a keyboard shortcut to

  1. Reset the emulator
  2. Reload the last selected PRG (else, do nothing)
  3. Run it again automatically

(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 !

Scripts for running emulator on Linux do not handle spaces (+solution)

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!)

windows line endings in unix scripts

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.

RR-net support

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.