MegaReport v1.3 updated!

Página 3/4
1 | 2 | | 4

Por lintweaker

Champion (415)

Imagen del lintweaker

02-05-2021, 19:16

Pentarou wrote:

I've been able to boot with a different device, still on Nextor 2.10; The only difference I've noticed are a few more bytes free in basic, are these few bytes the reason why it would/wouldn't boot?
On a Panasonic 2+ machine I get "MSX-Engine: NOT FOUND", does this mean only the older S3527 and S1985 are detected?

And still I get a "Modified MSX2", how do you detect that? Hardcoded values?

Not sure about the STX error issue. I'll keep the number of free BASIC bytes in mind.
Only S3527 and S1985 are really detected. S1990 is coupled to Turbo-R. Other engines I do not have any info on.
Is your Panasonic 2+ still original. I have both a WX and WSX, afaik if shows 2Plus on these. I'll re-check.

Por lintweaker

Champion (415)

Imagen del lintweaker

02-05-2021, 19:17

gdx wrote:

I can try if you want.

If you meant about the MSX-DOS version. I'll keep that on the back burner. thx.

Por Pentarou

Champion (394)

Imagen del Pentarou

02-05-2021, 19:45

lintweaker wrote:

Is your Panasonic 2+ still original. I have both a WX and WSX, afaik if shows 2Plus on these. I'll re-check.

No no, sorry the Panasonic 2+ is correctly identified.
The message "Modified MSX2" comes out on other modded MSX2s that have full Japanese settings and Bioses and I wanted to know what else is different.

Por msd

Paragon (1461)

Imagen del msd

02-05-2021, 21:26

More robust Opl4 check

OPL4_WAVE_ADDR		EQU	07Eh
OPL4_WAVE_DATA		EQU	07Fh
WVE_DEVICE_ID		EQU	2

Opl4CheckDevice:
; OUT z = Opl4 Found
;    nz = Opl4 not found
		LD	A,WVE_DEVICE_ID
		OUT	(OPL4_WAVE_ADDR),A
		PUSH	BC
		POP	BC	; Wait
		IN	A,(OPL4_WAVE_DATA)
		AND	A,%11100000	; And device ID
		CP	A,%00100000	; Is opl4 present?
		RET

SRAM check

ReadRegister:
; Input  C = register
; Output A = Value
			LD	A,C
			OUT	(OPL4_WAVE_REG_SELECT),A
			PUSH	BC
			POP	BC
			IN	A,(OPL4_WAVE_REG_DATA)
			RET
			
WriteRegister:	
; Input C = register
;       A = Value
			EX	AF,AF
			LD	A,C
			PUSH	BC
			POP	BC
			OUT	(OPL4_WAVE_REG_SELECT),A
			EX	AF,AF
			PUSH	BC
			POP	BC
			OUT	(OPL4_WAVE_REG_DATA),A
			RET

SetSramAddress:		
; Input : EHL - Opl4 ram addres
			LD	C,2	; ENABLE SRAM ACCESS
			LD	A,10001B
			CALL	WriteRegister
			INC	C
			LD	A,E
			AND	111111B
			CALL	WriteRegister
			INC	C
			LD	A,H
			CALL	WriteRegister
			INC	C
			LD	A,L
			CALL	WriteRegister
			LD	A,6
			OUT	(OPL4_WAVE_REG_SELECT),A
			LD	C,OPL4_WAVE_REG_DATA
			RET


GetSramSize:
; Output HL = Size of sram in KB
			LD	HL,0			      ; Loop door SRAM heen in blokken van 64kB
			LD	B,020h		    ; Maximaal 32 blokken van 64kB aanwezig (=2MB)
.writeLoop		
			LD	A,B			   ; B loopt van 32 tot 1
			ADD	A,01Fh
			LD	E,A			  ; E loopt van 32 tot 63 (sla eerste 2MB ROM over)
			CALL	SetSramAddress	; Schrijf SRAM adres in Wave registers
			LD	C,06h
			LD	A,B
			CALL	WriteRegister	    ; Schrijf waarde B (32 - 1) in 1e byte van SRAM
			DJNZ	.writeLoop	   ; Volgende 64kB SRAM blok
			
			LD	D,B			       ; D=0 (is maximaal aantal aanwezige 64kB blokken)
			LD	B,020h			; Controleer alle 32 SRAM blokken
.readLoop	
			LD	A,B
			ADD	A,01Fh
			LD	E,A			; Zie boven
			CALL	SetSramAddress	; Scrijf SRAM adres in Wave registers
			LD	C,06h
			CALL	ReadRegister	; Lees waarde uit 1ebyte van huidige SRAM blok
			CP	B			; Gelijk aan wat er oorspronkelijk ingezet is?
			JR	Z,.valueEqual
			LD	D,0			; Nee, dan maak D weer nul
			JR	.nextBlock		; Controleer volgende blok
.valueEqual		
			LD	A,D			; Wel de juiste waarde? Dan:
			OR	A			; Als het VORIGE blok een foute waarde teruggaf...
			JR	NZ,.nextBlock		; ...dan is het huidige blok het eerst mogelijke
			LD	D,B			; juiste SRAM blok; in D
.nextBlock	
			DJNZ	.readLoop			; Controleer volgende SRAM blok
			
			SRL	D			; Minimale blok eenheid is 128kB
			LD	L,0
			LD	H,D
			SRL	H
			RR	L
			RET

Por msd

Paragon (1461)

Imagen del msd

02-05-2021, 21:46

More robust Gfx9000 check:

G9K_VRAM		EQU	60h	; R/W
G9K_REG_DATA		EQU	63h	; R/W
G9K_REG_SELECT		EQU	64h	; W
G9K_WRITE_ADDR		EQU	0	; W
G9K_READ_ADDR		EQU	3	; W

SetVramWrite:
; Function :    Sets Vram write address
; Input    : 	E:HL VRAM address
; Output   : 	none
; Modifies : 	A,C

                 LD      A,G9K_WRITE_ADDR
                 OUT     (G9K_REG_SELECT),A
                 LD      C,G9K_REG_DATA
                 OUT     (C),L
                 OUT     (C),H
                 OUT     (C),E
                 RET

SetVramRead:
; Function :    Sets Vram read address
; Input    : 	E:HL VRAM address
; Output   : 	none
; Modifies : 	A,C

                 LD      A,G9K_READ_ADDR
                 OUT     (G9K_REG_SELECT),A
                 LD      C,G9K_REG_DATA
                 OUT     (C),L
                 OUT     (C),H
                 OUT     (C),E
                 RET

Detect:
; Input    :    none
; Output   :    Z=detected , NZ=not detected
; Modifies :  A,C,E,H,L,F

                  LD      E,0
                  LD	  H,E
                  LD      L,E
                  CALL    SetVramWrite
                  LD      A,0A2h
                  OUT     (G9K_VRAM),A
                  LD      E,0
                  LD	  H,E
                  LD      L,E
                  CALL    SetVramRead
                  IN      A,(G9K_VRAM)
                  CP      A,0A2h
                  RET

Por tfh

Prophet (2975)

Imagen del tfh

02-05-2021, 21:43

MegaReport running on WebMSX
The line between the logo and the information does weird things sometimes. Could that be an emulation issue?
Funny to see it's recognized as a FA-A1ST in Tr mode.

Por lintweaker

Champion (415)

Imagen del lintweaker

03-05-2021, 08:28

msd wrote:

More robust Opl4 check

Thanks, the device ID check is already there. I'll play around with your SRAM code on OpenMSX and put it in the next release.

Por lintweaker

Champion (415)

Imagen del lintweaker

03-05-2021, 08:31

tfh wrote:

MegaReport running on WebMSX
The line between the logo and the information does weird things sometimes. Could that be an emulation issue?
Funny to see it's recognized as a FA-A1ST in Tr mode.

Cool, on what emulated type is it running?

Por NYYRIKKI

Enlighted (5875)

Imagen del NYYRIKKI

03-05-2021, 09:03

One minor wish: Can you please disable key click? Now it keeps clicking until the keyboard buffer gets full.

Por msd

Paragon (1461)

Imagen del msd

03-05-2021, 09:39

lintweaker wrote:
msd wrote:

More robust Opl4 check

Thanks, the device ID check is already there. I'll play around with your SRAM code on OpenMSX and put it in the next release.

I doubt that OpenMSX emulates the behavior properly. The reason why the check can fail is because the last byte written is read back regardless if there is SRAM connected or not. That is why the check is written like this

Página 3/4
1 | 2 | | 4