86113815 visitors

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - KingMike

Pages: 1 ... 35 36 37 38 39 [40] 41 42 43 44 45 ... 109
PocketHeaven release number?
Worst idea. I can't be the only one who obliterated those numbers from the ROM file names because... well, I must be one of those crazy people that doesn't want to have to look up a database just to find the game I want to play in a huge set. :P

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 07, 2013, 01:16:36 am »
The mapper SHOULD detect UNROM or UOROM based on the ROM size byte.

I think 10 should be the right value. It is the size of PRG-ROM in multiples of 16KB (10 hex = 16. 16 x 16KB = 256KB).

For some reason PCE uses a different encoding for BG tiles than it does sprites.
Not sure offhand which is which, though.

Gaming Discussion / Re: This guy built and Auto-Loading NES!
« on: March 06, 2013, 03:27:56 pm »
Didn't he use to make an NES mod as a parody for every new Nintendo console that came out?
(though the last one I can remember was an NES micro) :D

Site Talk / Re: Hebereke/Ufouria
« on: March 06, 2013, 03:24:26 pm »
Was that title long enough to hit the name length limit, or did someone just leave the ending "g" off?

Site Talk / Re: Hebereke/Ufouria
« on: March 05, 2013, 03:40:44 pm »
I believe the game database is shared between all categories (translations, non-translations, documents, etc.).

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 05, 2013, 03:30:38 pm »
I assume you're including the headers. Assuming the ROM has been expanded by doubling the PRG and copying/moving the last 16KB of PRG-ROM to keep it the last 16KB PRG-ROM like it should be, then yes, $3C000-3C00F is the last 16 bytes of the last non-fixed bank. $3C010 is the START of the fixed bank.

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 05, 2013, 03:19:53 pm »
Alright. Optimized controller routine.
You can probably actually take out the AND #$03 through the SEC part if you wanted to free up some more bytes, which would leave enough for an expanded bank table.
I don't know why some single-player games do that. It allows pins D0 and D1 to both be used for gameplay. Which I think essentially allows you to use a multitap to allow P3/P4 to function as P1/P2.

Replacing the noted instructions with a single LSR A would remove multitap support (for whatever reason it was there in the first place :P ) but should still work.

Code: [Select]
07:C29F:A2 01     LDX #$01
 07:C2A1:8E 16 40  STX $4016 = #$FF
 07:C2A4:CA        DEX
 07:C2A5:8E 16 40  STX $4016 = #$FF   ;write 1, then 0 to reset the port.
 07:C2A8:20 AC C2  JSR $C2AC    ;jumping to routine for one game controller
 07:C2AB:E8        INX         ;set X to 1 to read pad 2.
 07:C2AC:A0 08     LDY #$08  ;8 buttons
 07:C2AE:BD 16 40  LDA $4016,X @ $4115 = #$FF  ;read port
 07:C2B1:29 03     AND #$03        ;only low 2 bits matter
 07:C2B3:D0 03     BNE $C2B8
 07:C2B5:18        CLC                    ;here button was not pressed on either controller. Set carry flag to no button press
 07:C2B6:90 01     BCC $C2B9      ;jump over next line
 07:C2B8:38        SEC                  ;button pressed on either P1 or P3. Set carry to button pressed
 07:C2B9:26 45     ROL $0045 = #$00  ;rotate carry bit into button status byte
 07:C2BB:88        DEY
 07:C2BC:D0 F0     BNE $C2AE    ;repeat for all 8 buttons
 07:C2BE:8A        TXA
 07:C2BF:0A        ASL          ;double X
 07:C2C0:AA        TAX
 07:C2C1:B4 47     LDY $47,X @ $0146 = #$FF        ;read LAST FRAME BUTTON
 07:C2C3:84 46     STY $0046 = #$00             ;backup of LAST FRAME
 07:C2C5:A5 45     LDA $0045 = #$00                 ;read CURRENT FRAME BUTTON
 07:C2C7:95 47     STA $47,X @ $0146 = #$FF    ;store to LAST FRAME BUTTON
 07:C2C9:10 08     BPL $C2D3                  ;if A button not pressed on last frame, finish this routine
 07:C2CB:A5 46     LDA $0046 = #$00
 07:C2CD:10 04     BPL $C2D3                  ;if A button not pressed this frame, finish this routine
 07:C2CF:B5 47     LDA $47,X @ $0146 = #$FF
 07:C2D1:29 7F     AND #$7F         ;if A was pushed on both this and the last frame, set as not pushed
 07:C2D3:95 48     STA $48,X @ $0147 = #$FF   ;store CURRENT BUTTONS PUSHED
 07:C2D5:60        RTS
and 13 FFs (up to and including address $1C2F2).

BTW, I'm thinking I should try to gather all of Pikachumanson's Outlanders posts into one thread? :)

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 04, 2013, 07:04:41 pm »
Unfortunately, it looks like Outlanders is pretty stupid and has a bunch of hard-coded writes like
Code: [Select]
LDA #$03
STA $C003
all over the place in addition to
Code: [Select]
sta $C000,y
when they could've saved space
Code: [Select]
ldy #value
jsr The Offset Where One Instance Of STA $C000,Y Is

If you need to expand the table, I found the controller routine has some fat that can be cut.
Original routine
 07:C29F:A9 01     LDA #$01
 07:C2A1:8D 16 40  STA $4016 = #$FF
 07:C2A4:A9 00     LDA #$00
 07:C2A6:8D 16 40  STA $4016 = #$FF ;strobe controller port 1
 07:C2A9:85 45     STA $0045 = #$00
 07:C2AB:A2 00     LDX #$00
 07:C2AD:20 B5 C2  JSR $C2B5
 07:C2B0:E8        INX
 07:C2B1:A9 00     LDA #$00
 07:C2B3:85 45     STA $0045 = #$00 ;$45 status of current pad
 07:C2B5:A0 08     LDY #$08 ;number of reads left
 07:C2B7:85 45     STA $0045 = #$00
 07:C2B9:BD 16 40  LDA $4016,X @ $4016 = #$FF ;read port
 07:C2BC:85 46     STA $0046 = #$00
 07:C2BE:4A        LSR ;D0 -> carry, D1 -> D0
 07:C2BF:05 46     ORA $0046 = #$00 ;$46 = 1 if D1/D0 = 1
 07:C2C1:4A        LSR ;button push into carry
 07:C2C2:A5 45     LDA $0045 = #$00
 07:C2C4:2A        ROL ;insert into button register
 07:C2C5:88        DEY
 07:C2C6:D0 EF     BNE $C2B7 ;repeat for all buttons
 07:C2C8:86 46     STX $0046 = #$00
 07:C2CA:06 46     ASL $0046 = #$00 ;$46 = 0 for pad 1, 2 for pad2
 07:C2CC:A6 46     LDX $0046 = #$00
 07:C2CE:B4 47     LDY $47,X @ $0047 = #$00 ;old button data
 07:C2D0:84 46     STY $0046 = #$00
 07:C2D2:95 47     STA $47,X @ $0047 = #$00
 07:C2D4:95 48     STA $48,X @ $0048 = #$00
 07:C2D6:29 FF     AND #$FF
 07:C2D8:10 08     BPL $C2E2
 07:C2DA:24 46     BIT $0046 = #$00
 07:C2DC:10 04     BPL $C2E2
 07:C2DE:29 7F     AND #$7F
 07:C2E0:95 48     STA $48,X @ $0048 = #$00
Replacement code, seems to work okay.
Code: [Select]
ldx #$01
 stx $4016
 stx $4016 ;store controller
;here we'll assume X = 0 for player 1
 jsr PadRead
 inx ;onto player 2 and repeat the loop
 ldy #$08
 lda $4016,x ;$4016 for P1 and $4017 fot P2
 and #$03 ;check just D1/D0
 bne EitherPressed
 bcc $01
; now carry = 0 if neither line is pressed, 1 = if either pressed
 rol $45
 bne PadLoop

 asl a
 tax ;A = A*2  (by coincidence, it will still be 0 for P1, we don't care for P2)

 ldy $47,x ;last button press (from $47 for P1, $49 for P2)
 sty $46
 lda $45 ;current pad status
 sta $47,x ;store to last button status
 bpl End ;last button press wasn't A, quit
 lda $46 ;A wasn't pressed on previous check
 bpl End
 ;if we're here, A was pressed on both frames
 lda $47,x
 and #$7F
 sta $48,x
Should free up 13 bytes at $1C2E6-1C2F2 after inserted. Maybe that's enough you move the beginning of the reset routine (starts at $C008, reset vector is at $2000C (on NES, is always at $FFFC-FFFD of fixed bank) to free up $C008-C00F to expand the bank table.

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 04, 2013, 03:29:23 pm »
If you want to copy the routine over from PRG-ROM to PRG-RAM and you have free space, I imagne it would probably work.

Though I don't know how forward-compatible that might be with emulators. NESDev lists mapper 2 (UxROM) as not supporting WRAM/SRAM. The PCBs I've looked do look full as it is. Once noticeable thing suggesting as such, looking at bootgod's NES Cart Database, is that Dragon Quest 2 was converted from UNROM (128k, no SRAM) to MMC1 for Dragon Warrior II (256k, SRAM).

Gaming Discussion / Re: How to beat Castlevania
« on: March 04, 2013, 10:13:24 am »
Fuckin crows.

The worst crows are indeed spiteful.

Personal Projects / Re: Dark Moon Densetsu : NES English Translation
« on: March 04, 2013, 10:05:25 am »
That game is somewhere in Dynamic-Designs and Bongo`'s queue.

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 04, 2013, 09:54:15 am »
RTI should only be used to end the "interrupt" functions (NMI for all games, IRQ for games running on mappers that support IRQs). All other functions should end with RTS.

Newcomer's Board / Re: Vs. Ice Climber (Palette Hack)
« on: March 04, 2013, 09:49:25 am »
I've heard that some TVs might not like color 0D, and that is why it's use is discouraged. I think it is 0F that is recommended?

ROM Hacking Discussion / Re: PCE CD image ripping utilities
« on: March 03, 2013, 10:01:30 pm »
I've used CloneCD (seems to be one of those programs with a never-expiring "trial" nag), after ImgBurn refused to read a couple genuine PCE CDs I bought.

Newcomer's Board / Re: Vs. Ice Climber (Palette Hack)
« on: March 03, 2013, 09:58:31 pm »
Was the FDS version of Ice Climber based on the VS version, or was it only Cluclu Land and (I think) Excitebike that got a VS-to-FDS port?

That cat PC pic must be old.
TWO floppy drives? Or is one of those... a ZIP drive? ;D

Site Talk / Re: Invalid File Extention in URL
« on: March 03, 2013, 01:40:18 am »
That must be a patch submitted before the rules where changed (originally RHDN launched using content donated from former popular translation site The Whirlpool as that site was dying, the file could possibly have come through that way).
As long as you're submitting photos, if you wanted to download the patch and stick in a ZIP file and re-submit it (assuming you're sending through some hoster that supports non-image file direct links), that might be the easiest solution.

Newcomer's Board / Re: Expanding the UNROM mapper for the NES
« on: March 03, 2013, 01:23:58 am »
The PRG-ROM area is not RAM. Do not think of it as RAM. Bank swapping with swap the complete ROM bank out of access and swap the complete new ROM bank into access.

Be sure that when your code completes the bankswap (either the STA instruction that writes to the PRG bankswap address) or returns from a JSR to an existing function in the fixed bank, that you have valid code in the same location in the new bank or your game will crash.

Like, mapper 2 has a bank size of 16KB ($4000 bytes).
You had some code, and the JSR to a bankswap function was at ROM address $C567. Fine, let's say that's the address with iNES header. That means you have bank 3 swapped in (ROM $C000-FFFF not counting header), and address $557 within the bank.
Say you want to swap in bank 8 (ROM $20000-23FFF not counting header). The JSR is 3 bytes, so your new code better continue at address $20000+557+3+10 = $2056A.

Also, note than mapper 2 is considered to be a set of mappers with some including "bus-conflicts" mapper. I'm not entirely sure what that means, just that you better write the number of the bank you want to swap in, to a ROM address that has the same value, or the value written to the bankswap register will get corrupted (or at least you should assume it can, whether the emulator emulates that flaw or not).
Like most games will do something like
LDX #$05
STA $C000,X
where address $C000 has a list of all possible banks (00, 01, 02, etc.) If you don't have free space at the end of the table before other code, you'd have to move the list and update the pointer. (and hope the game handles all its bankswap calls through a single function)

Site Talk / Re: Hebereke/Ufouria
« on: March 02, 2013, 09:09:50 pm »
I'm curious, why is my Hebereke translation patch listed under Ufouria: The Saga? It's a bit misleading, as the patch is for the Japanese version of the game, the project page makes no mention of this fact, and someone specifically looking for a Hebereke translation might come up empty-handed. This is why I specified "Hebereke" in the submission form. :(

Is it site policy that all versions of a game are listed under their English name?

Yes, RHDN has a preferred order for game titles. I believe it's the official title in an English region (US, Europe, Australia, whichever came first), and then Japanese if it never got an official English release.

Pages: 1 ... 35 36 37 38 39 [40] 41 42 43 44 45 ... 109