Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://multigesture.net/wp-content/uploads/mirror/zenogais/Dynamic%20Recompiler.html
- https://jahej.com/alt/2011_06_12_jit-cpu-emulation-a-6502-to-x86-dynamic-recompiler-part-1.html
- https://c74project.com/microcode/
- ====================== Atari 2600: 6507, 11-bit address space
- Memory Map:
- ntsc: 1.19 mhz (262 lines)
- pal: 1.18 mhz (312 lines)
- 0000-007F TIA Registers
- 0080-00FF RAM/Stack
- 0200-02FF RIOT (Timer) registers
- 1000-1FFF Cartridge ROM (bankswitch)
- https://problemkaputt.de/2k6specs.htm
- http://www.classic-games.com/atari2600/specs.html
- http://7800.8bitdev.org/index.php/Atari_2600_VCS_Sound_Frequency_and_Waveform_Guide
- https://atariage.com/forums/topic/297759-part-1-cdfj-overview/
- http://www.ataricompendium.com/archives/articles/longevity/longevity.html
- https://www.randomterrain.com/atari-2600-memories-tutorial-andrew-davie-07.html
- https://www.masswerk.at/nowgobang/2021/6502-illegal-opcodes
- https://forums.atariage.com/topic/297759-part-1-cdfj-overview/
- https://forums.atariage.com/topic/255177-so-what-is-dpc/
- 1xxx = bank 0 hs=fff5
- 2xxx = bank 1 hs=fff6
- 3xxx = bank 2 hs=fff7
- 4xxx = bank 3 hs=fff8
- 5xxx = bank 4 hs=fff9
- 6xxx = bank 5 hs=fffa
- 7xxx = bank 7 hs=fffb (default)
- ====================== Space Invaders: i8080
- Memory Map:
- 0000-1FFF ROM
- 2000-23FF RAM
- 2400-3FFF Video RAM
- https://www.x-ways.net/winhex/kb/resources/Intel_x86_Commands.txt
- http://www.emulator101.com/reference/8080-by-opcode.html
- http://www.emulator101.com/memory-maps.html
- http://dunfield.classiccmp.org/r/8080.txt
- https://pastraiser.com/cpu/i8080/i8080_opcodes.html
- https://www.walkofmind.com/programming/side/hardware.htm
- https://floooh.github.io/2021/12/06/z80-instruction-timing.html#extra-clock-cycles
- ====================== NES: 6502
- 341 cycles x 262 scanlines = 89342 (89341.5) cycles.
- Skip 1 clock every even frame
- 341/3 = cpu ticks (113.6667) per scanline
- hblank = 256+85=341, cpi ticks 28.33333
- nmi to start of render: 2273.33333
- 256x240 resolution, 20 vblank, 2 dummy
- 64 sprites, max 8 per line
- OAM: 64x4 = 256 bytes
- Memory Map:
- cpu:
- 0000-1FFF RAM (mirrored)
- 2000-3FFF PPU registers (mirrored)
- 4000-4013 APU registers
- 4014 DMA
- 4015 APU registers
- 4016-4017 Input Controller registers
- 8000-FFFF PRG Game ROM (bankswitch)
- ppu:
- 0000-1FFF CHR BG/Sprite Tile bitmaps (bankswitch)
- 2000-3EFF BG Tile Maps
- 3EF0-3EFF Palette (mirrored)
- https://bugzmanov.github.io/nes_ebook/chapter_5.html
- https://github.com/christopherpow/nes-test-roms/
- https://wiki.nesdev.com/w/index.php/Nesdev_Wiki
- http://nesdev.com/6502_cpu.txt
- http://nesdev.com/undocumented_opcodes.txt
- https://www.nesdev.org/wiki/PPU_rendering
- ====================== GBOY: i8080/Z80
- 160x144 resolution, 10 lines vblank
- 114 x 154 = 17566 clocks per screen
- 40 sprites, max 10 per line
- OAM: 40x4 = 160 bytes
- Memory Map:
- 0000-00FF Boot ROM/Interrupt Vectors
- 0100-3FFF Rom Bank 0
- 4000-7FFF Rom Bank 1-N
- 8000-9FFF VRAM Tile/Map
- A000-BFFF Cart RAM
- C000-CFFF Internal RAM Bank 0
- D000-DFFF Internal RAM Bank 1-N
- E000-FDFF Echo RAM
- FE00-FE9F OAM Sprite (40)
- FF00-FF7F I/O Registers
- FF80-FFFE High RAM
- FFFF Interrupt Register
- http://bgb.bircd.org/pandocs.htm
- https://gbdev.io/gb-opcodes/optables/
- https://github.com/retrio/gb-test-roms
- https://gbdev.gg8.se/wiki/articles/Main_Page
- http://gameboy.mongenel.com/dmg/asmmemmap.html
- http://www.devrs.com/gb/files/opcodes.html
- http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf
- https://cturt.github.io/cinoop.html
- https://gekkio.fi/files/gb-docs/gbctr.pdf
- https://github.com/mattcurrie/mealybug-tearoom-tests
- ======================GBA: ARM ARM7TDMI
- 128 sprites
- Memory Map:
- 00000000-00003FFF BIOS
- 02000000-0203FFFF RAM
- 03000000-03007FFF RAM (cartridge)
- 04000000-040003FF I/O registers
- 05000000-050001FF BG Palette [256]
- 05000200-050003FF Sprite Palette [256]
- 06000000-0600FFFF VRAM Bitmap/BG Map/BG Tiles
- 06010000-06017FFF VRAM Bitmap/Sprite Tiles
- 07000000-070003FF OAM Sprite Data
- 08000000-09FFFFFF ROM
- 0A000000-0BFFFFFF ROM
- 0C000000-0DFFFFFF ROM
- https://emulation.gametechwiki.com/index.php/GBA_Tests
- https://www.gregorygaines.com/blog/decoding-the-arm7tdmi-instruction-set-game-boy-advance/
- https://problemkaputt.de/gbatek.htm
- https://www.coranac.com/tonc/text/toc.htm
- https://forums.mgba.io/showthread.php?tid=18
- https://medium.com/@michelheily/hello-gba-journey-of-making-an-emulator-part-1-8793000e8606
- http://ianfinlayson.net/class/cpsc305/notes/13-tiles
- https://github.com/DenSinH/FuzzARM
- https://github.com/JimB16/GBABios/blob/master/GBABios.s
- https://github.com/PeterLemon/GBA
- https://github.com/jsmolka/gba-tests
- https://github.com/Powerlated/OptimeGBA
- https://github.com/mgba-emu/suite
- ====================== PSX: MIPS
- Memory Map:
- 00000000-007FFFFF RAM
- 00800000-008003FF SCRATCH
- 00801000-00803FFF I/O registers
- 00C00000-00C7FFFF ROM
- https://student.cs.uwaterloo.ca/~isg/res/mips/opcodes
- http://problemkaputt.de/psx-spx.htm
- https://github.com/PeterLemon/PSX
- https://github.com/unsafepointer/ruby
- https://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats
- https://emulation.gametechwiki.com/index.php/PS1_Tests
- https://github.com/JaCzekanski/ps1-tests
- ====================== SNES: 65816
- 128 sprites, 32 per scanline
- Memory Map:
- 00000000-003FFFFF SNES Banks 00-3F
- 00400000-007DFFFF ROM Banks 40-7D
- 007E0000-007FFFFF WRAM
- 00800000-00BFFFFF SNES Banks 80-BF
- 00C00000-00FFFFFF ROM Banks C0-FF
- OAM: 512 + 32 bytes
- http://problemkaputt.de/fullsnes.htm
- https://media.smwcentral.net/Ersanio/SMWCstuff/Advanced%20documentation/qsnesdoc.html
- https://sneslab.net/wiki/SNES_ROM_Header
- http://tasvideos.org/EmulatorResources/SNESAccuracyTests.html
- https://github.com/PeterLemon/SNES/
- https://www.copetti.org/writings/consoles/super-nintendo/
- https://github.com/elzo-d/SnesJs/blob/master/snes/cpu.js
- https://georgjz.github.io/snesaa04/
- https://www.youtube.com/watch?v=3FVN_Ze7bzw
- https://www.chibiakumas.com/6502/snes.php
- ====================== N64
- MIPS VR4300i = 93.75 MHz
- RSP 62.5 MHz
- https://www.copetti.org/writings/consoles/nintendo-64/
- https://sites.google.com/site/consoleprotocols/home/homebrew/n64-assembly-home/Exceptions-and-Interrupts
- https://github.com/Ryzee119/n64_controller_test
- https://www.youtube.com/watch?v=VQHSI42_Ias
- https://github.com/rasky/r64emu/tree/master/src
- ====================== GameCube: PowerPC
- 00000000-017FFFFF RAM
- 80000000-817FFFFF RAM1 (cached)
- C0000000-C17FFFFF RAM1 (uncached)
- C8000000-CBFFFFFF Frame Buffer
- CC000000-CC000FFF Command Processor registers
- CC001000-CC001FFF Pixel Engine registers
- CC002000-CC002FFF Video Interface registers
- CC003000-CC003FFF Processor interface registers
- CC004000-CC004FFF Memory interface registers
- CC005000-CC005FFF Audio interface registers
- CC006000-CC006FFF DVD interface registers
- https://wiibrew.org/wiki/Memory_Map
- http://hitmen.c02.at/files/yagcd/yagcd/
- http://math-atlas.sourceforge.net/devel/assembly/ppc_isa.pdf
- https://www.nxp.com/docs/en/reference-manual/MPC82XINSET.pdf
- http://datasheets.chipdb.org/IBM/PowerPC/Gekko/gekko_user_manual.pdf
- http://www.csit-sun.pub.ro/~cpop/Documentatie_SMP/Motorola_PowerPC/PowerPc/GenInfo/pemch8.pdf
- https://github.com/msierks/rustcube/blob/master/src/gamecube.rs
- https://github.com/dingusdev/dingusppc/tree/master/cpu/ppc/test/ppcinttests.cs
- https://github.com/dingusdev/dingusppc/tree/master/cpu/ppc/test/ppcfloattests.csv
- ====================== C64: 6510
- NTSC: 1.023 MHz
- PAL: 0.985 MHz
- 320x200 resolution
- border: 403x284 resolution
- total: 504x312 resolution
- cycles_per_scanline = 63
- cycles_per_frame = 312 x cycles_per_scanline = 19656 cycles
- Memory Map:
- 0000-03FF OS RAM
- 0400-07FF Screen Memory (40x25)
- 0800-9FFF RAM/CARTLO
- A000-BFFF RAM/CARTHI/BASIC
- C000-CFFF RAM
- D000-DFFF RAM/CHARSET/IO
- E000-FFFF RAM/CARTHI/KERNAL
- https://www.c64-wiki.com/wiki/Memory_Map
- https://www.c64-wiki.com/wiki/Keyboard
- http://blog.worldofjani.com/?p=164
- https://codebase64.org/doku.php?id=base:vicii_memory_organizing
- https://wpguru.co.uk/2014/06/how-to-switch-between-upperlower-case-and-petscii-fonts-on-a-c64/
- http://www.coding64.org/?p=164
- https://digitalerr0r.net/2011/04/30/commodore-64-programming-7-creating-and-rendering-bitmaps/
- https://www.c64brain.com/gamehacks/pitfall-ii-game-reverse-engineered/
- https://www.youtube.com/watch?v=-5ASyabVrxg
- http://unusedino.de/ec64/technical/formats/crt.html
- https://sta.c64.org/cbm64krnfunc.html
- https://csdb.dk/forums/index.php?roomid=11&topicid=116402
- https://github.com/kondrak/rust64
- http://ist.uwaterloo.ca/~schepers/formats/CRT.TXT
- https://www.c64-wiki.com/wiki/Bank_Switching
- https://retro64.altervista.org/blog/sprite-multiplexing-simple-implementation-using-commodore-64-basic-v2/
- http://www.c64os.com/post/sd2iecfilenames
- http://www.unusedino.de/ec64/technical/formats/d81.html
- https://github.com/floooh/docker-c64/blob/master/m6569.h
- https://www.youtube.com/watch?v=lVKPWzJRtl0 - sprite multiplex
- d012 raster line (16...50)
- d001 sprite y
- ======================== Macintosh - 68000
- Memory Map:
- * A23 A22 A21 A20 A19
- * 0 0 X X X 00.0000 - 3F.FFFF RAM OVERLAY=0
- * 0 1 X 0 X 40.0000 - 4F.FFFF ROM OVERLAY=0
- * 0 1 0 0 X 40.0000 - 4F.FFFF ROM OVERLAY=1
- * 0 1 1 1 X 60.0000 - 7F.FFFF RAM OVERLAY=1
- * 1 0 X 0 X 70.0000 - 0F.FFFF ROM OVERLAY=1
- * 1 0 X 0 X 80.0000 - 8F.FFFF ROM OVERLAY=X, SCC
- * 1 1 0 0 X C0.0000 - CF.FFFF ROM OVERLAY=X, IWM
- * 1 0 0 X X 80.0000 - 9F.FFFF SCC (not 1000X)
- * 1 0 1 X X A0.0000 - BF.FFFF SCC (not 1010X)
- * 1 1 0 X X C0.0000 - DF.FFFF IWM (not 1100X)
- * 1 1 1 0 X E0.0000 - EF.FFFF VIA (not 11100)
- * 1 1 1 X 0 E0.0000 - E7.FFFF PHASE (not 11100)
- http://www.easy68k.com/files/EASy68KQuickRef.pdf
- https://www.bigmessowires.com/rom-adapter/plus-rom-listing.asm
- https://www.osdata.com/system/physical/memmap.htm
- https://github.com/MicroCoreLabs/Projects/blob/master/MCL68/MC68000_Test_Code/MC68000_test_all_opcodes.X68
- https://www.eeeguide.com/exceptions-types-of-motorola-68000/
- https://developer.apple.com/library/archive/documentation/mac/pdf/Operating_System_Utilities/Trap_Manager.pdf
- http://www.mac.linux-m68k.org/devel/iwm.php
- http://www.mac.linux-m68k.org/devel/macalmanac.php
- https://vintageapple.org/inside_o/pdf/Inside_Macintosh_Volume_III_1985.pdf
- https://brutaldeluxe.fr/documentation/iwm/InsideMac_DiskRegisterInformation.pdf
- http://www.toughdev.com/content/2016/11/pcemacplus-the-ultimate-68k-classic-macintosh-emulator/
- https://developer.apple.com/library/archive/documentation/mac/pdf/Devices/Device_Manager.pdf
- https://ftp.zx.net.nz/pub/archive/ftp.microsoft.com/MISC/KB/en-us/69/177.HTM
- https://developer.apple.com/library/archive/documentation/mac/pdf/Devices/Device_Manager.pdf
- https://macgui.com/news/article.php?t=496
- https://mcosre.sourceforge.net/docs/adb_intro.html
- https://github.com/evansm7/umac/tree/main
- ======================== Appleii
- https://www.kreativekorp.com/miscpages/a2info/index.shtml
- https://6502disassembly.com/a2-rom/
- https://6502disassembly.com/a2-rom/APPLE2.ROM.html
- https://github.com/zellyn/goapple2/blob/master/docs/apple2.org
- ======================== 68000
- https://github.com/transistorfet/moa/
- https://github.com/fredrequin/j68_cpu/blob/master/roms/rom_testbench.asm
- ======================== Sega Genesis - 68000/Z80
- * 32x28 cell = 256x224, 64 sprites
- * 40x28 cell = 320x224, 80 sprites
- 4 planes: scrollb/sprite 0/scrolla/sprite1
- memory map: https://segaretro.org/Sega_Mega_Drive/Memory_map
- https://segaretro.org/images/1/18/GenesisTechnicalOverview.pdf
- https://segaretro.org/Sega_Mega_Drive/VDP_registers
- https://www.copetti.org/writings/consoles/mega-drive-genesis/
- https://github.com/vladikcomper/MegaPCM/blob/master/MegaPCM.asm
- https://plutiedev.com/using-the-z80
- https://www.hdretrovision.com/free-stuff
- http://techdocs.exodusemulator.com/Console/SegaMegaDrive/Software.html#test-roms
- https://github.com/sonicretro/s1disasm/blob/AS/sonic.asm
- https://gendev.spritesmind.net/forum/viewtopic.php?f=8&t=3329&sid=5a7ded3e58fe87a663e27f2f2470b439
- ======================== Amiga - 68000
- 262 lines ntsc
- 312 lines pal
- 244 count horiz
- ntsc: 7.16 MHz 640x200x4
- pal: 7.09 MHz 640x256x4
- 8 3-color sprites
- Memory Map:
- 00.0000 - 03.FFFF 256Kb Chip RAM
- 04.0000 - 07.FFFF 256Kb Chip RAM
- 08.0000 - 0F.FFFF 512Kb Chip RAM
- 10.0000 - 1F.FFFF Reserved
- 20.0000 - 9F.FFFF Auto-config space
- A0.0000 - BE.FFFF Reserved
- BF.D000 - BF.DF00 8250-B (even addresses)
- BF.E001 - BF.EF01 8250-A (odd addresses)
- C0.0000 - D7.FFFF Slow ram
- D8.0000 - DB.FFFF Reserved
- DC.0000 - DC.FFFF RTC
- DF.F000 - DF.FFFF Chip registers
- E0.0000 - E7.FFFF Reserved
- E8.0000 - E8.FFFF Auto-config space
- F0.0000 - FB.FFFF Reserved
- FC.0000 - FF.FFFF 256Kb System ROM
- https://github.com/Specy/asm-editor
- http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0060.html
- http://goldencrystal.free.fr/M68kOpcodes-v2.3.pdf
- https://github.com/MicroCoreLabs/Projects/tree/master/MCL68/MC68000_Test_Code
- http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node00D3.html
- http://retrospec.sgn.net/users/tomcat/miodrag/Atari_ST/Atari%20ST%20Internals.htm
- http://wpage.unina.it/rcanonic/didattica/ce1/docs/68000.pdf
- https://www.nxp.com/files-static/archives/doc/ref_manual/M68000PRM.pdf
- http://coppershade.org/articles/Code/Reference/Custom_Chip_Register_List/
- https://github.com/TomHarte/CLK/tree/Amiga/OSBindings/Mac/Clock%20SignalTests
- https://github.com/MicroCoreLabs/Projects/blob/master/MCL68/MCL68_with_BASIC/mcl68.ino
- http://amigadev.elowar.com/read/ADCD_2.1/Hardware_Manual_guide/node0063.html
- https://www.youtube.com/watch?v=37OuDZ2g1bQ
- https://www.amigaroms.com/
- https://github.com/flamewing/68k-bcd-verifier
- https://wiki.amigaos.net/wiki/Classic_Graphics_Primitives
- https://github.com/petschau/WinFellow/blob/master/fellow/SRC/WinFellow/graphics/DDFStateMachine.cpp
- https://www.markwrobel.dk/post/amiga-machine-code-letter12-linedraw2/
- ========================= NeoGeo - m68k + z80
- 000000-0FFFFF Vector Table, ROM bank 1
- 100000-10F2FF WorkRAM:User RAM
- 10F300-10FFFF WorkRAM:System ROM/reserved RAM
- 110000-1FFFFF WorkRAM mirror
- 200000-2FFFFF ROM bank 2-N
- 300000-3FFFFF I/O
- 400000-401FFF Palette RAM Bank
- 402000-7FFFFF Palette RAM mirror
- 800000-BFFFFF Memory card
- C00000-C1FFFF System ROM
- C20000-CFFFFF System ROM mirror
- D00000-D0FFFF Backup RAM
- D10000-DFFFFF Backup RAM mirror
- https://wiki.neogeodev.org/index.php?title=Main_Page
- https://wiki.neogeodev.org/index.php?title=68k_instructions_timings
- ========================= Wii - PowerPC(Broadway)+ARM(Starlet)
- 80000000-817FFFFF MEM1 cached
- C0000000-C17FFFFF MEM1 uncached
- 90000000-93FFFFFF MEM2 cached
- D0000000-D3FFFFFF MEM2 uncached
- https://www.copetti.org/writings/consoles/wii/
- https://github.com/decaf-emu/decaf-emu
- ========================== Switch
- https://github.com/Ryujinx/Ryujinx
- https://github.com/CAS-Atlantic/AArch64-Encoding/blob/master/binary%20encodding.pdf
- ========================== 8086
- 00000-9FFFF RAM
- A0000-BFFFF Video
- E0000-FFFFF ROM
- i/o ports:
- 020-021 Interrupt
- 0A0-0A1 Interrupt
- 3B0-3BF Video
- 3D0-3DF Video
- https://github.com/b-dmitry1/BIOS - bios
- https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrated/#16_colors_rgbi
- https://github.com/davecom/DK86PC
- https://github.com/ricardoquesada/bios-8088.git
- https://github.com/mikechambers84/XTulator
- https://stanislavs.org/helppc/ports.html
- http://www.gabrielececchetti.it/Teaching/CalcolatoriElettronici/Docs/i8086_instruction_set.pdf
- https://github.com/volkertb/temu-vsb/blob/main/temu/temu.asm
- https://github.com/volkertb/temu-vsb/tree/main/sbemu
- http://archive.gamedev.net/archive/reference/articles/article443.html
- https://www.smspower.org/Development/SN76489?sid=ae16503f2fb18070f3f40f2af56807f1
- http://www.zeridajh.org/articles/various/sn76489/index.htm
- http://www.shipbrook.net/jeff/sb.html
- ;;=== sse shift
- https://wunkolo.github.io/post/2020/11/gf2p8affineqb-int8-shifting/
- https://wwwuser.gwdg.de/~parallel/intel_compiler_doc_91/main_cls/mergedProjects/intref_cls/common/intref_sse2_int_shift.htm
- https://wwwuser.gwdg.de/~parallel/intel_compiler_doc_91/main_cls/mergedProjects/intref_cls/common/
- https://shybovycha.github.io/2017/02/21/speeding-up-algorithms-with-sse.html
- https://www.cnblogs.com/qmjc/p/13495724.html
- ========================== Turbografx 16 - HuC6280
- http://shu.emuunlim.com/download/pcedocs/pce_cpu.html
- https://www.chibiakumas.com/6502/pcengine.php
- https://www.copetti.org/writings/consoles/pc-engine/
- http://shu.emuunlim.com/shu_frame.html
- http://archaicpixels.com/HuC6280_Instruction_Set
- https://cx16.dk/65c02/reference.html
- https://github.com/Klaus2m5/6502_65C02_functional_tests
- https://github.com/visrealm/vrEmu6502
- https://www.chrismcovell.com/PCEdev/HuC6280_opcodes.html
- https://retropie.org.uk/docs/PC-Engine/
- 8x8 bg tiles
- 16x16 sprite layer
- 16 colors
- 4096 bg tiles
- 6 audio channels
- ========================== ColecoVision
- https://colecoboxart.com/faq/FAQ05.htm
Add Comment
Please, Sign In to add comment