Coder Social home page Coder Social logo

mborik / gpmd85emulator Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 5.0 1.17 MB

Unix emulator of the Tesla PMD 85, an 8-bit personal micro-computer and all its compatible models produced in eighties of 20th century in former Czechoslovakia.

Home Page: https://mborik.github.io/GPMD85Emulator/

License: GNU General Public License v3.0

C++ 93.74% C 5.29% Makefile 0.48% M4 0.49%

gpmd85emulator's People

Contributors

cizo2000 avatar mborik avatar mikezt avatar

Stargazers

 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

gpmd85emulator's Issues

Probably error in mapping keyboard

REPAIR
Probably error in mapping keyboard

  • The character " : " is mapped to the same key as the character " ; "
    ( After pressing this key is generated " : " , wrong )

  • The key that should generate the character " : " is generates nothing.

SIGABRT crash after saving snapshot

Emulator crashes immediatelly after any snapshot is saved. Snapshot was always created correctly and can be loaded without any problem.

I tried it on older Gentoo Linux and another computer with updated Debian 9 Jessie.

It doesn't depend on PMD configuration (selected model, or enabled peripherals) or running software, even after reset just in monitor it crashes same way.

crash.txt

Fixing the Tape Browser block popup functionality

Popup dialog which could be shown for every block in Tape Browser has serious issue:

  • it crashing after Import tape... was selected and File browser appears but after exiting from file browser without selection (ESC) it crash on NULL pointer exception (probably because it wipe out pointer to current menu item(s), but it doesn't explain why it works properly if file was chosen...?)
  • consider if File browser dialog could be completely independent from all generic menus or submenus because of its menu-independent behaviour.

Connect writing into VRAM with screen rendering

  • every byte stored into VRAM memspace will be projected into union rectangle
  • screen rendering will be performed only on that union rectangle so redrawing will be performed only on that part of screen witch was changed (and save the CPU if nothing changed)
  • union rectangle should be reset to empty rectangle just before screen redrawing with be performed

saa/Makefile.in not found

When trying to compile the latest source of GPMD85 0.11.1912, compiler stops, complaining that saa/Makefile.in is not found.

Screen was redrawn only after menu enter and exit

Changes on screen was seen only after some action in menu. For example:

  • key M pressed
  • nothing happen on screen
  • entering a menu with AltGr+F1
  • exiting from menu with Esc
  • M showed in command prompt

Tested with current working copy in repo
Arch Linux
SDL2 v2.0.10

Emulator freeze during navigating in menu

When I open the menu and navigate through various sub-menus, the emulator used to freeze in short time. I found it's because of the SDL_Delay calls in MenuOpen and MenuClose routines. In attachment is a patch to eliminate this.
menufix.txt

Implement MIF 85 emulation

  • integrate SAASound library by Dave Hooper
  • implement Mif85, child of PeripheralDevice
  • integrate into IifTimer (8253)

games.ptp file missing

hello,
is there any reason why is games.php excluded? i can see it in sourceforge archive, but not here.

Multiple ongoing regressions on screen rendering

There are still some ongoing regressions after resolving #3 (merged by #8) reported by some testers:

  • ScreenPMD85::PrepareScreen must in every frame do the cleanup of full renderer/viewport.
  • UserInterface::statusRect has invalid Y position (it depends on border size and calculation is incorrect)
  • fix the tape progress-bar in the UserInterface::RedrawStatusBar

Poor sound quality

Poor quality of sound and music was not fixed.

  • noisy
  • unpleasant high pitch tones
  • unpleasant interferences
  • there are some slow-downs and lags

Originally posted by @zkolar75 in #14 (comment)

Integrate latest improvements into memory emulation & mapping

  • split ChipMemory initialization into separate child classes appropriate to each model:
    • ChipMemory12
    • ChipMemory2A
    • ChipMemory3
    • ChipMemoryC2717
  • implement 256K memory extension for models 2A a 3:
    • ChipMemory2AEx
    • ChipMemory3Ex
  • extend base class with reset status and let all the child classes implement ResetOn a ResetOff methods
  • let all the child classes to implement GetVramPointer method which returning address where VRAM is currently mapped

Improve screen rendering

  • Upgrade SDL library to version 2.x
    • it should improve overall performance and cross-platform compatibility
  • Simplify screen rendering
    • remove OpenGL fragments which are still little bit unstable
    • remove the complex solution of scalers and scanliners
    • replace with simple texture scaling into renderer
  • Scanliners
    • will be replaced with wrapped (or repeating) tiny overlay textures of black pixels with alpha channel and blended through the screen

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.