News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

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] 2 3 4 5 6 ... 151
Is the SNES TECHNICALLY capable of FMV? Yes.
Is the SNES PRACTICALLY capable of FMV? No.
It can run FMVs, but they can't be more than a few seconds long due to ROM space. (even the Rickroll ROM I think uses the maximum standard size of 4MB and still had to compress the video and still reduces everything to vague blobs to fit it in. Although I don't know if anyone has verified if that even runs on actual hardware.)

I happen to have the answer to the Ninja Gaiden level boss thing.
Code: [Select]
$E3D1:A6 6D     LDX $006D = #$01           A:00 X:30 Y:07 P:nVUbdIZc
$E3D3:E0 13     CPX #$13                   A:00 X:01 Y:07 P:nVUbdIzc
$E3D5:90 04     BCC $E3DB                  A:00 X:01 Y:07 P:NVUbdIzc
$E3D7:A2 10     LDX #$10
$E3D9:D0 01     BNE $E3DC
$E3DB:CA        DEX                        A:00 X:01 Y:07 P:NVUbdIzc
$E3DC:A9 00     LDA #$00                   A:00 X:00 Y:07 P:nVUbdIZc
$E3DE:20 28 C0  JSR $C028                  A:00 X:00 Y:07 P:nVUbdIZc
$C028:85 5C     STA $005C = #$02           A:00 X:00 Y:07 P:nVUbdIZc
$C02A:8D FF FF  STA $FFFF = #$FA           A:00 X:00 Y:07 P:nVUbdIZc
$C02D:4A        LSR                        A:00 X:00 Y:07 P:nVUbdIZc
$C02E:8D FF FF  STA $FFFF = #$FA           A:00 X:00 Y:07 P:nVUbdIZc
$C031:4A        LSR                        A:00 X:00 Y:07 P:nVUbdIZc
$C032:8D FF FF  STA $FFFF = #$FA           A:00 X:00 Y:07 P:nVUbdIZc
$C035:4A        LSR                        A:00 X:00 Y:07 P:nVUbdIZc
$C036:8D FF FF  STA $FFFF = #$FA           A:00 X:00 Y:07 P:nVUbdIZc
$C039:4A        LSR                        A:00 X:00 Y:07 P:nVUbdIZc
$C03A:8D FF FF  STA $FFFF = #$FA           A:00 X:00 Y:07 P:nVUbdIZc
$C03D:60        RTS                        A:00 X:00 Y:07 P:nVUbdIZc
$E3E1:BD 2C AF  LDA $AF2C,X @ $AF2C = #$00 A:00 X:00 Y:07 P:nVUbdIZc
$E3E4:85 6E     STA $006E = #$01           A:00 X:00 Y:07 P:nVUbdIZc
$E3E6:86 6D     STX $006D = #$01           A:00 X:00 Y:07 P:nVUbdIZc

Those first lines there are the code to check if you are on level 6-4 or higher (level 19 or 0x13 in hex).
If you are, then the LDX #$10 sets you to level 6-1.
So there you go, change ROM $1E3E8.
I think this could be literally the only code in Ninja Gaiden that explicitly sets the level number. (6D is the level number, 6E will be the submap number)
Those last lines read the level number in X to get the submap ID (such as level 2-1 was what, 3 or 4 submaps long) or maybe just the level number to display on the screen (ie show all four of those 4 submaps as level "2-1")

Starting on level 1-1 in NG1 I'm sure is based on the RAM initialization code setting RAM to 0. You can only change the starting level by changing the RAM fill value but of course that will break things.
The rest of the time I believe NG changes the level number by doing a +1 or -1 to the level number (which is possibly why dying to any other bosses sends you to the BEGINNING of the previous level (ie 4-4 to 4-3) rather than the last checkpoint, and all the game automatically continues on Game Over.
Making a Game Genie code for level select (which the AVGN complained about not existing) mostly impossible unless you want to hijack the above code (which I'm sure I did as an example. Set the first CPX to (I'm guessing) 0x01 (level 1-2) and then change the LDX code to the desired level number and then you warp when you die to the level 1 boss.

I looked it up after watching the AVGN video. And yet youtube commenters want to take James' word as gospel that it's a bug when we can see pretty clearly in this code that it was intended behavior to go from 6-4 back to 6-1.

Personal Projects / Re: Nintendo Vs - NES Hardware Hacks
« on: October 21, 2017, 10:08:59 pm »
They're not arcade ports: the Vs games are NES games put into arcade machines. And I'm planning on doing all of them (there aren't that many).

I only know for sure Super Mario Bros. and Castlevania but I'm sure other games as well had subtle changes made to make them harder so that even if you were pretty good at the NES, you probably wouldn't just drop a quarter and win on the VS.

And then there's VS. Gradius. They took the console port of an arcade game, and ported it BACK to the arcade. I wonder WHY? :D

Gaming Discussion / Re: Rent A Hero help
« on: October 21, 2017, 03:54:20 pm »
Never heard of an RPG requiring the drop command be used for progress. :o

ROM Hacking Discussion / Re: Nintendo Vs - Game Genie Free Play Codes
« on: October 21, 2017, 02:44:54 pm »
KingMike: thanks for the info on controller input, though I'm still not sure how it works. It confused me that the $4016 register could get info about all eight buttons from one bit. I'll have to do a bit of messing around with the debugger to figure it all out.
Means that after doing the "strobe" command, the first time you read $4016 will return A in the lowest bit, the second time it is read it will return B, I think the third is Select, etc.
(the second-lowest bit on each read is used on Famicom games to check the corresponding button on the expansion port at the same time)
At least that is with normal controllers. Odd ones like the gun or Arkanoid paddle will be different.

Explains why when my NES acted up, most of the buttons stopped responding except that pushing A acted as everything pushed at once.

(the extra filtering it does after reading all eight buttons, using with like XORs and such, is so that it can detect when a button is "pushed" and only count it as one press. As even when you mean to push the button only one time, the game will probably still read the input many times in the time it takes you to press and remove your finger, so it has to account for that.
A bad example of that would be Winter Games. Of the other problems AVGN had about the game, he didn't bring up that even the PAUSE function is broken. It only allows a certain delay for you to remove your finger from Start and if you hadn't moved it by then, the game will count it as another tap and unpause the game.
Compare that to a good game like Mario, which will wait until the button is released (at least once cycle where it is NOT pressed) before it will allow the game to be paused again. Meaning you can press and hold Start for a ridiculous length like 10 seconds and it will still properly recognize it as a single press.

Newcomer's Board / Re: Running patches on original consoles?
« on: October 20, 2017, 11:05:31 pm »
The "adapter" he is referring to is probably the same thing as a Flash cart.

I don't think it would be within the rules to link to Flash cart sales.

Using patches however to say run the official English version of Chrono Trigger with a Japanese Chrono Trigger however is a roundabout way of playing an illegally downloaded ROM. Unless you own the English version of Chrono Trigger, which defeats the point of having a patch.

ROM Hacking Discussion / Re: Nintendo Vs - Game Genie Free Play Codes
« on: October 20, 2017, 10:58:50 pm »
I'm surprised flash cart mappers don't have something in the VS mappers to support that.

I remember one of the NES Test Carts would respond to the coin input button with a Famicom microphone input. Though I don't know if that's something that should normally happen or just a fluke with whatever emulator someone was using to report on it.

As to how the NES controller is read:
It sends input one button each time it is read. You will pretty much always write 1 then 0 to the controller port (or was is the reverse?) to reset or "strobe" it (so you can tell what button each read corresponds to, as the order is fixed once you strobe it, so the next read will be A, the first button in the sequence).
You need to do 8 reads of the controller port to get the 8 buttons/directions.
A good routine will follow each read with an AND so that only the relevant bits are read from the controller port, and then they will usually ROL or ROR that into a memory address.
So that after 8 reads, the RAM byte used will be filled with the status of all 8 buttons in a single byte.

The good news is that most games store their data together. Typically four bytes: P1 "held" (the raw data from the controller port), P1 "pushed" (the data after some filtering to get only the buttons newly pushed on the current frame) as well as P2 counterparts. So you can set a read breakpoint for 4016/4017 and see the RAM addresses used for the controller input right there in the debugger.

While games developed for the NES might do an AND #$01 after reading 4016/4017 to filter only the controller data pin, Famicom games should take data from either bit 0 (lowest bit) or bit 1 of the port. Supposedly that was a mandate from Nintendo for compatibility with external controllers. (some right-shifting to read a button as "pushed" if either bit 0 or bit 1 is 1)

I set a breakpoint for when $D42A is written to, then entered the boss area. Sure enough, there was a break, and an operation involving the number $14. Only problem is, when I changed it in a hex editor, the ROM no longer works, just boots with a red screen... I don't have any experience with hacking the Genesis, so I'm not sure what I did wrong there.
Probably checksum protection, sounds like it's common on the Genesis.
Emulators usually have an "Auto fix checksum" option but if that doesn't work, you'll have to fix it manually.
(some games never bothered to have a correct checksum, which is worrying for people wanting to make sure they dumped their games correctly)

Just increasing hit count I don't think increases the challenge in a good way.
If it's just the same shit repeated more times, that's only making it more tedious.

I was absolutely shocked to find Intangir (was that it's name, the invisible enemy) in Final Fantasy VI Advance was meant to be Death-immune. 32,000 HP for a World of Balance wild enemy is total bullshit. I can't remember how long it took to even kill one of those things for a Bestiary entry. 10 minutes maybe? FOR A RANDOM ENCOUNTER! I don't think even WoB bosses had that much HP, did they?

Personal Projects / Re: Tengai Makyou Zero translation project
« on: October 18, 2017, 05:33:14 pm »
I'm guessing the translation is using ROM expansion that wasn't utilized on any actual SPC7110 carts, so is thus not technically officially verifiable (but obviously Doug has made a cart that works).

I'm guessing SNES9x only supports the "official" memory mapping and needs modification to support an unofficial expansion.

ROM Hacking Discussion / Re: Game Genie Help
« on: October 17, 2017, 08:25:08 pm »

I'm a little confused about the 3, 4, 5, 7 listed as that's one higher than what you actually get, but whatever.
Possibly counting "0" lives? As I recall the lives went down to 0 and Game Over is when it wraps to FF.

ROM Hacking Discussion / Re: Game Genie Help
« on: October 17, 2017, 05:36:51 pm »
I think the general idea is that the Game Genie watches the Address pins on the cart, and when it matches one of the addresses encoded by the user-entered codes, it replaces whatever was on the Data pins with the Data value in the code. (that is for "6-digit" codes. There are "8-digit" codes which have a Compare value. It will only replace the Data if the value in the ROM matches the Compare value. That is meant as a way to detect that the intended ROM bank is swapped in. Not failproff but probably the best they could come up with without having to know, or probably a reasonable way to tell, the ROM banking. GB and GG did that as well, except for some reason the codes were 9 digits. I don't know what the extra digit was for. SNES and Genesis didn't have a compare value since extremely few games on those consoles had mappers, and probably none existed when the GGs were created.)
What am I curious about was a Sega CD GG. I thought at least one magazine once mentioned a device, maybe even a proto pic. I believe it would've attached through the expansion port. But it was never released and if it was in development information on it would've been as obscure as an attachment to allow the GB GG to be played on a Super Game Boy. Which was released but by some obscure company and I'm sure is now as much of a collectable as the top-loader version of the NES GG.

From what I read the FDS disks don't actually have as much free space as you may think (something technical about the physical construction of the disks).

The Body Conquest translation patch mentions some problems with more accurate emulation when the files were expanded too much.

ROM Hacking Discussion / Re: Game Genie Help
« on: October 17, 2017, 12:15:01 pm »
Game Genie is the reverse of what you describe Psyklax. It patches ROM addresses (replaces data as it passes through the cart).

Action Replay changes RAM.

I don't have VS. Climber, but in regular Ice Climber I see RAM 0020 is lives using Cheat Searcher.
So I set a Write Breakpoint on 0020 in the Debugger.
Code: [Select]
00:C4AD:A9 03     LDA #$03
>00:C4AF:85 20     STA $0020 = #$03
So CPU $C4AE is lives, which would be ROM $4AE (since Ice Climber has a 16KB PRG, CPU $C000-FFFF is the PRG-ROM) or $4BE with a header FOR THE ORIGINAL. You would have to substitute in addresses for VS.

Gaming Discussion / Re: Lost NES - Genesis games
« on: October 17, 2017, 12:39:15 am »
Are you sure the Cool Spot-like game was an RPG? I think the sequel (Spot Goes to Hollywood?) was an isometric game with a pirate ship. Or at least the screenshots I remember of it were, I never actually played the game myself.

Killing dragons, huh?
It's been awhile since I played it but maybe Dahna: Megami Tanjou?

The puzzle game... is it Blockout? EA didn't originally make the game but I think they made or at least published the Genesis port.

But this post sounds more like it should be in the "forgotten games thread".

ROM Hacking Discussion / Re: Mapper Conversions Issues Question
« on: October 16, 2017, 01:54:31 pm »
Guardian Legend is an UNROM game. MMC3 and MMC5 are far more complex mappers, so yes you do need to reprogram code to keep the extra functionality of the mapper from interfering with the game. (possibly IRQ is the issue?)

Gaming Discussion / Re: Games with fixed RNGs
« on: October 15, 2017, 10:48:06 pm »
Although Deep Dungeon III was broken in many ways, the fact that (as I recall) the RNG seed advances only on frames when no buttons are touched is probably amazingly breakable.

Gaming Discussion / Re: Games with fixed RNGs
« on: October 15, 2017, 12:40:52 pm »
Yes, FF1 was the first example I could think of.
I remember the GDQ speedrun heavily exploiting that (they've also done a couple RNG-exploitation runs of Chrono Trigger as well). Though it sounded like CT RNG abuse required resetting the console and loading on certain frames, which would be more impressive for a real-time speedrun.
I know there was a Pokemon HeartGold speedrun that was supposed to be RNG-abuse based (of course, Pokemon would be a pretty bad game to try to speedrun live without predicting RNG) though the runner had quite a struggle setting up the RNG live, and even his second DS with a pre-loaded RNG manipulation failed to run as expected.

I think no$ developer uses X86 opcode mnemonics be default for all his emulators.
There might be an option somewhere in the options to change it.

That is as I recall as I had to use his SNES emulator before as it is, to my knowledge, the only emulator (at least with debugging features) to emulate a feature I needed (TurboFile).

I have only done little progress on a single PS1 translation, but as I understand you can't directly read from CDs (the "ROM") as you can do with cartridge (although even N64 I have heard doesn't run directly from cart ROM for technical reasons probably). The data has to be read from the CD into the RAM before it can be used/executed.

Personal Projects / Re: Super Jerry's Quest - SMB1 hack
« on: October 14, 2017, 02:59:07 pm »
You mean like Tom & Jerry?
Because it looks like when Jerry gets a powerup he looks like he turned into Tom. :o

Pages: [1] 2 3 4 5 6 ... 151