Users browsing this thread: 1 Guest(s)
Slot ability modification
(02-17-2012, 12:59 PM)m06 Wrote: This is very cool. Great findings Madsiur.2nd edit: You mean like for slot 1 if you switched 7-Flush with 3 bar swap all the 2 and 5 ? I haven't tested it.
I'm interested in if the slot graphics change accordingly if you change the value of the conversion data, did you try this?
edit: I'll look more deeply into it...probably right after the RNG assignation.
Well those graphics are loaded in a big chunk of 800 bytes and I don't how they are processed because it's a direct VRAM write from $4375 to $2118. It's not like it's different smaller graphics that are loaded and displayed individually on the reel. The game somehow make us think it's that way maybe... If we could identify when the reel stops which graph is displayed and how it would give us a better idea of which offset to change to switch them. I'm still unsure of the feasibility of this...
I had some DMA and VRAM values that helped me understanding these 2 routines. The comment might be a bit off but you can get the main process:
Code:
C1/403F: 201040 JSR $4010 (set the parameters for loading the slots menu graphics & window)
C1/4042: A410 LDY $10 (load in Y #$380)
C1/4044: 8436 STY $36
C1/4046: A512 LDA $12 (Load bank of the offset of the menu window graphics)
C1/4048: A00042 LDY #$4200 (future video address of the menu)
C1/404B: 202B1A JSR $1A2B (display the slot menu the same way slot graphics are displayed)
C1/404E: A20008 LDX #$0800 (graphic size in bytes of the slots graphics altogether?) <-------
C1/4053: A200F0 LDX #$F000 (Slots graphics starting offset low and medium bytes)
C1/4056: A00044 LDY #$4400 (future video address)
C1/4059: A9D2 LDA #$D2 (slots graphics starting offset high byte)
C1/405B: 202B1A JSR $1A2B (slot graphics loader?, DMA style)<-------
C1/405E: A20010 LDX #$1000
C1/4061: 8636 STX $36
C1/4063: A2C07F LDX #$7FC0
C1/4066: A00058 LDY #$5800
C1/4069: A9C4 LDA #$C4 (FWF position)
C1/406B: 202B1A JSR $1A2B (FWF font loader, DMA style)
C1/406E: AD342F LDA $2F34 (Wallpaper selection)
C1/4071: 2907 AND #$07
C1/4073: 8D342F STA $2F34 (Store as wallpaper selection)
C1/4076: 0A ASL A
C1/4077: 18 CLC
C1/4078: 6D342F ADC $2F34 (Add in original value [now A holds wallpaper # times 3])
Here's the function that prepare the VRAM transfer or is the actual transfer, but it should reach one of the DMA routine later I think:
Code:
Graphics loading routine Comments are for from C1/405B but the overall process is the same for other graphics
C1/1A2B: 8B PHB (push DB byte onto the stack so PB point to the same bank as DB?)
C1/1A2C: 48 PHA (Push #$D2 onto the stack)
C1/1A2D: A900 LDA #$00 (zero A ?)
C1/1A2F: 48 PHA (push #$00 onto the stack)
C1/1A30: AB PLB (DB = #$00 ?)
C1/1A31: 68 PLA (a = #$D2)
C1/1A32: 8C1621 STY $2116 (Store #$4400 to Video address)
C1/1A35: 8E7243 STX $4372 (Store #$F000 in Source offset of the 7th DMA channel.)
C1/1A38: 8D7443 STA $4374 (Set $D2 Source bank of the 7th DMA channel.)
C1/1A3B: A901 LDA #$01
C1/1A3D: 8D7043 STA $4370 (01 is the DMA mode)
C1/1A40: A918 LDA #$18
C1/1A42: 8D7143 STA $4371 (Destination of the DMA transfer + $2100 ---> $2118 (Video data))
C1/1A45: A636 LDX $36 (block of 800 bytes with slots graphics)
C1/1A47: 8E7543 STX $4375 (Size of the transfer in bytes.)
C1/1A4A: A980 LDA #$80
C1/1A4C: 8D0B42 STA $420B (Enables 8th DMA channel ?)
C1/1A4F: AB PLB (initial value)
C1/1A50: 60 RTS
« Next Oldest | Next Newest »
|
||||
Users browsing this thread: 1 Guest(s)