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 (2317 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 (4973 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 (3202 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 (4234 views)   |  permalink
MJTT v1.1 Password Addition IPS patch released 
Monday, August 11, 2008, 21:45
I've just updated the Montana John and the Templar's Treasure Password Addition patch to the just released v1.1 of the game. An additional feature to the patch is that the position of the pointer doesn't change anymore.

Again, the IPS patch is available in the MSX IPS Patch Archive.
add comment (4576 views)   |  permalink   |  related link

<<First <Back | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Next> Last>>