GithubHelp home page GithubHelp logo

noemiabril / psx_mister Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mister-devel/psx_mister

0.0 0.0 0.0 1.63 MB

PSX for MiSTer

License: GNU General Public License v2.0

SystemVerilog 8.72% Batchfile 0.28% VHDL 76.35% Verilog 12.90% Lua 0.85% Tcl 0.90%

psx_mister's Introduction

by Robert Peip

Hardware Requirements

SDRAM of any size is required.

Features

  • Savestates
  • Option for core pause when OSD is open
  • Optional manual Memory Card file loading (.MCD)
  • CUE+BIN and CHD format support
  • Multiple Disc Game support with Lid open/close toggle
  • Fast Boot (Skips BIOS)
  • Dithering On/Off Toggle
  • Bob or Weave Deinterlacing
  • Inputs: Digital, Analog, Mouse, NeGcon, and Guncon support.

Bios

Rename your playstation bios file (e.g. scph-1001.bin/ps-22a.bin ) to boot.rom and place it in the ./games/PSX/ folder.

You can also place a cd_bios.rom in the same directory as the CD or 1 directory above, to have it uses together with that CD. This can be used for games that depend on the BIOS region(US,EU,JP).

Memory Card

One card can be mounted for each controller slot. Cards are in raw .mcd format. An empty formatted .mcd file is available for download here.

You need to save them either manually in the OSD or turn on autosave. Saving or loading a card will pause the core for a short time.

Multiple Disc Games

To swap discs while the game is running, you will need have all of the disc files for the game placed in the same folder. Then when loading a new disc for most games you will need to toggle the Lid Open/Close option to tell the game you have opened the lid and closed it. Example folder structure of a multi disc game:

/media/fat/games/PSX/Final Fantasy VII (USA)/Final Fantasy VII (USA) (Disc 1).chd
/media/fat/games/PSX/Final Fantasy VII (USA)/Final Fantasy VII (USA) (Disc 2).chd
/media/fat/games/PSX/Final Fantasy VII (USA)/Final Fantasy VII (USA) (Disc 3).chd

Video output

Core uses either normal output or direct framebuffer mode.

In Framebuffer mode you can choose to view:

  • normal drawing area without any overscan cutoff
  • full VRAM as 1024x512 pixel image (debug mode)

Libcrypt

Some games are secured with Libcrypt and will not work if it's not circumvented.

You can provide a .sbi file to do that. If there is a .sbi file next to a .cue with the same name, it is loaded automatically when mounting the CD image.

Error messages

If there is a recognized problem, an overlay is displayed, showing which error has occured. You can hide these messages with an OSD option, by default they are on.

List of Errors:

  • E2 - CPU exception(only relevant if game shows issues)
  • E3..E6 - GPU hangs (e.g. corrupt display list)
  • E7 - CPU2VRAM with mask-AND enabled
  • E8 - DMA chopping enabled
  • E9 - GPU FIFO overflow
  • EA - SPU timeout
  • EB - DMA and CPU interlock error
  • EC - DMA FIFO overflow
  • ED - CPU Data/Bus request timeout
  • EE - Dotclock used as timer report(only relevant if game shows issues)

Debug Options

The debug menu is intended for use by developers only. They don't really serve any purpose for regular users so it's best to leave them at their default setting as a lot of undesirable behavior could occur.

Pad Options

The following pad types are emulated by the core and can be independently assigned to each port:

  • Digital
    (ID 0x41) Ten button digital pad.
  • Analog
    (ID 0x73) Twinstick pad.
    Currently does not support rumble function or the configuration protocol, so older games might not detect it.
  • Mouse
    (ID 0x12) Two button mouse.
  • Off
    Pad unplugged from port.
  • GunCon
    (ID 0x62) GunCon compatible lightgun.
  • NeGcon
    (ID 0x23) NeGcon compatible racing pad.
    Primarily developed for dual analog stick usage with the following mapping (genuine NeGcons
    may work if usb adapters map steering to Left Analog and I/II to Right Analog):
    • Steering -> Left Analog
    • Circle -> Circle
    • Triangle -> Triangle
    • I -> Right Analog Up, Cross (100% pressed), R2 (100% pressed)
    • II -> Right Analog Down, Rectangle (100% pressed), L2 (100% pressed)
    • L -> L1 (100% pressed)
    • R -> R1

Status

Work in progress, don't report any bugs!

  • some games working

--

CPU : 90%

  • exception for read in invalid instruction and data area missing

GPU : 90%

  • mask bits not implemented for cpu2vram
  • vram2vram read/modify/write race condition when copying to same line

Memory : 80%

  • rotate register not done for all busses

IRQ : 80%

  • irq_SIO missing
  • irq_LIGHTPEN missing

PAD : 80%

  • SNAC interface missing

DMA : 80%

  • DMA write performance only 32bit/2 cycles, should be 32Bit/1 cycle?

Memctrl: register stubs only

SIO : register stubs only

Timer : 50%

  • dotclock base missing
  • accuracy for start/wraparound not tested

GTE : 80%

  • timing not correct

MDEC : 90%

  • timing slightly too fast (4996/5376)

CD : 80%

  • check seek position while seeking not implemented

SPU : 90%

psx_mister's People

Contributors

robertpeip avatar birdybro avatar nolannicholson avatar markun avatar sorgelig avatar kitrinx avatar unlimitedcodeworks avatar charleslove avatar zakk4223 avatar paulb-nl avatar

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.