Skip to content

Releases: emu-russia/breaks

PAL PPU Rails

Choose a tag to compare

@ogamespec ogamespec released this 15 Dec 17:21
a7778eb

A small study exploring the differences between the PAL and NTSC versions of the PPU, in the interconnections of the left side.

image

This is the part with the most changes, but all of them are insignificant - mainly some of the signals are distributed differently. But one unknown signal was found, which comes out of the ODD/EVEN circuit and goes into the sprite logic.

image

You can learn more about the internal PPU signals here:
https://github.com/emu-russia/breaks/blob/master/BreakingNESWiki_DeepL/PPU/rails.md

Breakasm 1.0

Choose a tag to compare

@ogamespec ogamespec released this 09 Dec 09:39
d075570

Breakasm

Как можно более простой и тупой ассемблер для генереации кода.

Для запуска:

Breakasm test.asm test.prg

PRG файл всегда 64 Кбайта (размером с адресное пространство 6502). Текущий указатель ассемблирования (ORG) можно устанавливать в любое место PRG.

Синтакс

Исходный текст разбивается на строки следующего формата:

[LABEL:]  COMMAND  [OPERAND1, OPERAND2, OPERAND3]       ; Comments

Метка (LABEL) является необязательной. Команда (COMMAND) содержит инструкцию 6502 или одну из директив ассебмлера. Операнды зависят от команды.

Встроенные директивы

Директива Описание
ORG Установить текущее положение ассемблирования в PRG.
DEFINE Определить простую константу
BYTE Вывести байт или строку
WORD Вывести uint16_t в порядке little-endian. Можно использовать как простые числа, так и метки и адреса.
END Завершить ассемблирование
PROCESSOR Определяет тип процессора в информативных целях

Пример исходника

Чтобы много не писать, просто покажу пример исходника. Делайте так же и всё должно получиться.

; Test program

LABEL1:

    PROCESSOR 6502
;    ORG     $100

    DEFINE  KONST   #5

    LDX     KONST

AGAIN:
    NOP
    LDA     SOMEDATA, X         ; Load some data
    JSR     ADDSOME             ; Call sub
    STA     $12, X
    CLC
    BCC     AGAIN               ; Test branch logic

ADDSOME:                        ; Test ALU
    ADC     KONST
    PHP                         ; Test flags in/out
    PLP
    RTS

    ASL     A

SOMEDATA:
    BYTE    12, $FF, "Hello, world" 
    WORD    AGAIN

END

Breaking NES Book - 6502 Core, Revision A (Eng)

Choose a tag to compare

@ogamespec ogamespec released this 07 Dec 16:25
0f20807

This book contains descriptions of all MOS 6502 circuits.

If you are a master in digital circuitry, the 6502 processor will reveal all its secrets to you.

The second book in the series of copypastes from the wiki of this project.

This time the pdf uses a more compact A5 format.

Breaking NES Book - 6502 Core, Revision A (Rus)

Choose a tag to compare

@ogamespec ogamespec released this 07 Dec 11:43
e06df36

Книга содержит описание работы всех схем MOS 6502.

Если вы владеете мастерством цифровой схемотехники—процессор 6502 откроет вам все свои тайны.

Вторая книга из серии копипастов с вики данного проекта.

На этот раз pdf использует более компактный формат A5.

PPU PAL H/V FSM Control Logic

Choose a tag to compare

@ogamespec ogamespec released this 08 Nov 19:16
4bfb66d

PAL PPU (RP2C07) control logic transistor circuit

image

Found differences from NTSC PPU:

  • Significantly different ODD/EVEN circuitry (located to the right of the V PLA). The signal to the sprite logic is not yet clear from this circuit
  • Slightly different logic for clearing H/V counters
  • Bit V0 for the phase generator comes out of the VCounter (see VideoOut schematic)
  • BLACK and PICTURE signals are processed in a special way for PAL (with slight differences)
  • H/V Decoders are also different (see https://github.com/emu-russia/breaks/blob/master/BreakingNESWiki_DeepL/PPU/hv_dec.md)

All places where there are differences in the circuits are marked with a special marker ("!")

All other parts (Horizontal and vertical FSM logic, register selection circuit, H/V counters) are the same as NTSC PPU.

The .xml file can be opened in the Deroute utility, as usual.

EDIT:

  • Fixed inversion of PLA outputs (they are in direct logic)
  • Unknown signal for sprite logic is called ZOMG_PAL

PPU PAL VideoOut Circuit

Choose a tag to compare

@ogamespec ogamespec released this 08 Nov 13:04
917fc9c

PAL VideoOut

Transistor circuits of the PAL PPU RP2C07 video generator.

image

Of the notable differences from the NTSC version of the PPU:

  • The color decoder is twice as big (due to the peculiarity of the PAL phase alteration)
  • In addition, the V0 bit from the VCounter comes on the decoder to determine the parity of the current line (for phase alteration)
  • The phase shifter is matched to a doubled decoder
  • The PICTURE signal undergoes additional processing (DLATCH delay)
  • DAC, Emphasis and Luma Decoder circuits are the same as NTSC

How to use

In the archive is an .xml file that can be opened by the utility Deroute (https://github.com/emu-russia/psxdev/releases/tag/deroute-release-103).

In the settings of Deroute you need to set the wire size - 5.

Additionally for Derote attached PPU image (File -> Load Image), for verification with the schematic.

Breaking NES Book - PPU, Revision A (Rus)

Choose a tag to compare

@ogamespec ogamespec released this 04 Nov 13:27
81918e3

Первая книга из серии копипаст с вики данного проекта.

В ревизии "A" в полной мере представлены транзисторные схемы PPU, на некоторые из которых есть схемы для Logisim, реализация Verilog и симуляция на питоне.

Главное, как говорится, начать.

Breaking NES Book - PPU, Revision A (Eng)

Choose a tag to compare

@ogamespec ogamespec released this 04 Nov 16:24
ed79a62

The first book in a series of copypastes from the wiki of this project.

The "A" revision presents the PPU transistor circuits in their entirety, with some schematics for Logisim, a Verilog implementation, and a Python simulation.

The main thing, as they say, is to get started.