Skip to content
/ ZX3D Public
forked from jsanchezv/JSpeccy

A ZX Spectrum emulator that converts old games to 3D

Notifications You must be signed in to change notification settings

fpetrola/ZX3D

 
 

Repository files navigation

ZX3D

A ZX Spectrum emulator that converts old games to 3D

This emulator aims to convert 2d old zx spectrum games to 3d with no code modifications involved.

How it works

The idea behind ZX3D is to make an automatic sprites usage detection, and use this information to represent the same game in other environment or view.

To acomplish this it uses a modified z80 emulator written in Scala (converted from z80.java source) that can intercept arithmetic and logical operations over memory bits. Storing every memory access location associated to each cpu operation, when the pixel is displayed in screen memory all this data can be inspected to obtain the original bit location that is "creating" the pixel itself.

3D representation

Using all the collected data and applying some algorithms sprites type and location can be determined for each game screen in real time. This sprite information is used by a jmonkeyengine application to create an equivalent 3d avatar object located in a 3D environment. These 3D avatars can handle new constraints that are exclusive of this new environment such as z-index position, new movement axis, lights, weather effects, etc.

Sound

A similar aproach could be used to make a modern representation of old games sounds and music


Development progress:

First step: Detecting sprites original address while they are shown.

First step


Second step: Displaying sprites as boxes in 3d environment

Second step

About

A ZX Spectrum emulator that converts old games to 3D

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 89.4%
  • Scala 6.9%
  • GLSL 3.5%
  • HTML 0.2%