GithubHelp home page GithubHelp logo

etxmato / emma_02 Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 9.0 3.05 GB

Emma 02 - RCA CDP 1802 Multi-system Emulator

License: Other

Makefile 0.38% Assembly 31.14% xBase 0.51% HTML 6.55% C++ 47.71% C 12.81% Inno Setup 0.64% Shell 0.03% Rich Text Format 0.05% BASIC 0.09% Objective-C 0.08%

emma_02's People

Contributors

etxmato avatar karlrado avatar leonisx avatar mark2880 avatar phiber1 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emma_02's Issues

Comx-35 clock setting

I found a bit confusing that instead of the clock setting being the clock speed of the processor. It's the clock speed before it's dived by 2.
Most of the other systems in the emulator are the clock speed of the processor. Which really makes more sense as no one is thinking about a pixel clock in an emulator.

RCA VideoSetup crashes program

When I click the "VideoSetup" button in the "RCA" tab, Emma 02 crashes with the following error:

image

This is Emma 02 V1.32 running on Windows 10. All the other VideoSetup dialogs work as expected.

GUI hangs on Linux shortly after start-up

  • This doesn't happen on all occasions
  • Also noticed on windows (on work laptop) that it hangs for about 30 seconds
  • Possibly caused by the update check; maybe internet access is blocked by 'something', firewall or other?
  • Maybe this should be 'default' off

assert on exit of Emma 02 after running Elf 2K for some time

  • Not happening all the time
  • Could this be caused by some leaks?
  • After debugging on windows I know there is at least one leak maybe more, possibly linked to Main::setConfigurationMenu, Main::buildConfigMenu, Main::setChangeNoteBookEvent or Main::onElfChoiceBook

Pango-CRITICAL error

(emma_02:15558): Pango-CRITICAL **: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed

No clue what this is as yet, reported by Mark

emma02.ini file should not be in ~/emma_02/data

Instead it should be in ~/emma_02 on Linux

On windows maybe it should stay as is - to be looked into
On OS X either the same as on Linux or maybe emma_02.ini should be in the application/emma_02 folder

Bxyn in CHIP-8X not working correctly due to error in interpreter file

First thanks for the emulator! It is nice that there is one that takes care of so many exotic systems whit this nice CPU. :-)

While testing VP590 support in my own emulator and comparing behavior of CHIP-8X I found that the Bxyn opcode is not working correctly. Debugging the issue showed that the interpreter file in data/VIP/chip8x.ram has a bug, I guess it is based on OCR of a hex-dump and somehow the byte at offset 0x228 in the file is 0x9c but should be 0x8c, as clearly readable in the VP580, VP585, VP590, VP595 Instruction Manual page II-3.
With that byte changed Bxyn works as described.

Manjaro / Arch Linux Support

I've tried a few tools to convert the DEB and RPM files to run on Manjaro, but with no luck. Would you be able to package Emma_02 up in a compatible format, or release it as Flatpak or AppImage? I've even tried the Windows version on my Steam Deck but that doesn't run either.

Does anyone else have the knowledge to do this?

Changing EOP(End Of Program)

When using Memory Access in the comx-35, it should change the EOP to point at the end of the loaded space when SpecifyLocation is check.

EOP is commend in basic and returns the end of program. It's also used by PSAVE to tell it when to end.

The EOP value is located in memory at 0x4283 high byte and 0x4284 low byte.

image

Fixes to be done after GUI is fixed

Just so I don't forget:

  • Check why default window size doesn't open large enough, possible workaround to save size of window and re-open same size
  • Set size of wxChoiceBooks to size window
  • Update help to use new GUI layout description for: COMX Plot / STD button, Elf Disk vs. File button for IDE.

A proposal for better random generator for SuperChip

I'm experimenting a bit with how the random numbers are generated on the superchip vm, and...

Seem the numbers generated there do following some patterns and it's pretty short and pretty deterministic. Doesn't look good...
72mBKgSRqF
RnMO4J9953

Expected results are where the Hex mixt and Framed MK1 fills the whole screen:
pHm3vlY4pp
aUnA7VFCL6

I'm proposing to make use of LSFR [linear shift feedback register] which I think it's good for being simplistic and having more randomness to it. I consider 16-bit LSFR is good, and should be shifted 8 times when fetching one byte from it. (still having period of 65535)

pseudocode

seed = 12345 # 16-bit initial feedback value, could be any number

def shift(seed):
 return ((((seed>>1)^seed)<<15)|(seed>>1))&0xFFFF

def shiftByte(seed):
 return shift(shift(shift(shift(shift(shift(shift(shift(seed)))))))) # shift 8 times

# print random bytes 10 times
for n in range(10):
 seed = shiftByte(seed)
 print(seed&255)

One may shift it to only few to save cycles, or by making it perform shifts for every chip8 instr executed. It depends on implementation.

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.