Saturday, October 24, 2009, 18:04
Today I received a Franky cartridge from Sander van Nunen after I offered to look into how things work with it. But first a few specifics...

Franky is a cartridge extension containing a 315-5124 chip, which is available in the Sega Master System consoles. This chip contains both a VDP and the SN76489 PSG. The VDP is based on the TMS9928A and extended with some console-specific features:
  • palette in 2 banks with 16 colors each of which 1 bank dedicated to backdrop and sprite colors
  • horizontal and vertical hardware scrolling
  • TMS9928 style tile patterns and sprites where each pixel can have its own color
  • line interrupt
  • extended name table with up to 512 tiles, options to mirror, flip, change priority (sprites will go behind it) and palette bank for a tile
  • flags to disable specific rows or columns from scrolling (useful for score boards in games that use scrolling)
  • access to horizontal and vertical counters
The audio exits 2-way, to the MSX via de cartridge slot and via de 15-pin SUB-D (VGA connector), which has the same pinout as the ESE3 for convenience purposes.

Right now many Sega Master System titles can be played when they get converted while the game files get loaded. Some titles have been converted manually already as the automated converter has problems converting those.
add comment (3415 views)   |  permalink
ARC emulated 
Wednesday, September 16, 2009, 15:47
Yesterday I got an original ARC: 2 diskettes and a cartridge in the box. After a short while I decided to dive into the internals of the protection the cartridge contains. With some preparation work I did a bit over 2 years ago, I found out how the protection works and I've already implemented it in openMSX and closedMSX. The cartridge also contains a ROM which required to be dumped and after a while I was able to play the game. In less than a day I was able to create both the emulation code and a block diagram of the protection.
add comment (831 views)   |  permalink
SCREEN 5 Graphic Coder 
Friday, July 17, 2009, 09:24
Patrick van Arkel (Vampier) released a SCREEN 5 Graphic Editor, which allows to create 16x16 tiles. Vampier used to use a similar program in the past, but after it was lost somewhere in his disk archive, he decided to redo the whole thing. I've been helping him out with a bit of assembly to speed up the things that turned out way too slow in BASIC.

Direct download link: Graphic Coder
add comment (3126 views)   |  permalink   |  related link Special Interest pages update - SaveROM v1.2 
Saturday, February 28, 2009, 14:53
I've done some more work on SaveROM. The list of changes:
  • full MSX-DOS2 support, which allows saving to FAT16 drives, and use sub-directories
  • fixed a bug causing dumping megarom 00-FF range to get in an infinite loop
  • megaROM question has become a type select
  • added memory overview of pages containing something
  • added display for megarom block number as a progress indicator

Thanks go to Patriek Lesparre for improvement ideas.
add comment (2130 views)   |  permalink   |  related link
Using 48 kB ROM unmapped with the LPE-FlashG 
Monday, December 15, 2008, 20:15


Usually flash cartridges allow reading data only from Z80 pages 1 and 2 (address range $4000-$BFFF). With the LPE-FlashG it's also possible to run software that was written to run from Z80 page 0 (address range $0000-$3FFF). Because of this feature it's also possible to run 48 kB unmapped ROM software, like "Universe: Unknown" and "The Cure". In case of the LPE-FlashG a little bit of mapping is required. Why and how is described in this article...

The LPE-FlashG mapper

The mapper is ASCII8 and ASCII16 compatible, selectable with a jumper. General information about MegaROM mappers is described on:

The following table shows the Z80 paging and LPE-FlashG specifics on how the first 4 blocks are initialised:

Z80 Page 0 1 2
Mapper $0000-$1FFF $2000-$3FFF $4000-$5FFF $6000-$7FFF $8000-$9FFF $A000-$BFFF
ASCII8 ---- (0) ---- (0) $6000 (0) $6800 (1) $7000 (2) $7800 (3)
ASCII16 ---- (0) $6000 (0) $7000 (2)

The values between parenthesis are the initial block values. The hexadecimal values (indicated by the $-prefix) preceding them are the common switch addresses, if applicable.

Adapting the 48 kB unmapped ROM

To get 48 kB unmapped ROM software running from the LPE-FlashG we need to have the following configuration:

Z80 Page 0 1 2
Mapper $0000-$1FFF $2000-$3FFF $4000-$5FFF $6000-$7FFF $8000-$9FFF $A000-$BFFF
ASCII16 ---- (0) $6000 (1) $7000 (2)

As shown in the table, this 48 kB unmapped feature is only possible in ASCII16 mode. The value for page 1 should be 1 in stead of the initialised 0. To correct this, a little piece of additional code is required. The following source code (tniASM ready) shows how it's to be done:
		org	0
phase $4000
dw "AB",lpeInit,0,0
rst8: ds 3
lpeInit: ld a,1
ld ($6000),a

; over here, the rest of your code and data for page 0 is
; located

org $4000
dw "AB",init,0,0,0,0,0,0

; over here, the rest of your code and data for pages 1 and
; 2 is located

Here's how it works. When the ROM is started under normal conditions, the system will look for the cartridge header on address $4000. The address on init is found and it'll jump to that address, causing it to start normally.

When the ROM is started from the LPE-FlashG block 0 is located in both pages 0 and 1. Block 2 is already correctly mapped in page 2. In this case the cartridge header is found and the address on lpeInit is found and executed. This special piece of code is fitted exactly before the init in block 1, where the real page 1 init code is located. The code at lpeInit switches page 1 to block 1, to restore the full 48 kB ROM. After that the address of init is reached AND the correct block is selected in page 1. This means the blocks are set up correctly with the first 48 kB ROM in unmapped style and the game will start as if it was started under normal conditions.

The 3 bytes at rst8 can be used for an optional RST $8 entry.

Final words

I hope this article will be useful when creating new 48 kB unmapped ROMs for MSX to run them from LPE-FlashG without the requirement to make changes later on.

Of course it's also possible to patch existing 48 kB unmapped ROMs, like "Universe: Unknown" and "The Cure" mentioned in the introduction, to run from LPE-FlashG. For these two titles, IPS patches are already available here and may be useful in creating your own patches for other 48 kB unmapped ROMs.
add comment (1759 views)   |  permalink

<<First <Back | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Next> Last>>